2015-07-31 4 views
6

вида установленного Стража (я говорю родами, потому что я не понимаю одну части, которая говорит:Laravel: получение аутентификации Sentinel, чтобы сделать регистрацию, логином и т.д. простыми вопросы

Sentinel поставляется с реализацией по умолчанию для ILLUMINATE/баз данных, для того, использовать его, убедитесь, что вы требуете его на файл composer.json.

// импортируем необходимые классы

use Cartalyst\Sentinel\Native\Facades\Sentinel; 
use Illuminate\Database\Capsule\Manager as Capsule; 

// Включите файл композитор автозагрузку

require 'vendor/autoload.php'; 

Вопрос 1: где я могу написать этот код?

Вопрос 2: теперь мне больше всего интересно, как сделать что-то из этого, касающееся регистрации, активации и т. Д. Я бы ожидал, что будет создана ссылка, которая будет отправлена ​​на ваш адрес электронной почты, и после нажатия на нее вы активируете Это. Но все, что я могу видеть, что это говорит это:

$credentials = [ 
    'email' => '[email protected]', 
    'password' => 'password', 
]; 

$user = Sentinel::register($credentials); 

or if Also activate: 

$credentials = [ 
    'email' => '[email protected]', 
    'password' => 'password', 
]; 

$user = Sentinel::registerAndActivate($credentials); 

я должен написать, что в контроллере, когда я получаю вход? и как насчет активации электронной почты?

+0

Это для L4, но это хороший пример того, как использовать пакет Стража: HTTPS://github.com/cartalyst/demo-sentinel – daviestar

ответ

4

Следующий код:

use Cartalyst\Sentinel\Native\Facades\Sentinel; use Illuminate\Database\Capsule\Manager as Capsule;

для людей, которые пытаются использовать этот пакет изначально. Поскольку вы используете laravel, вам это не нужно. Пожалуйста, следите за инструкциями по laravel.

Потому что вы отметили laravel-5 в своем вопросе, я предполагаю, что это то, что вы используете. В этом случае, сначала добавьте это к вашему composer.json: composer require cartalyst/sentinel "2.0.*" и следующую строку в ваш конфиг/app.php файл:

К $providers массива: 'Cartalyst\Sentinel\Laravel\SentinelServiceProvider',

И к $alias~ array:

'Activation' => 'Cartalyst\Sentinel\Laravel\Facades\Activation', 'Reminder' => 'Cartalyst\Sentinel\Laravel\Facades\Reminder', 'Sentinel' => 'Cartalyst\Sentinel\Laravel\Facades\Sentinel',

После того, как вы это сделали, вы можете опубликовать и перенести пакет. Вам также необходимо расширить Cartalyst\Sentinel\Users\EloquentUser на вашей модели пользователя вместо Красноречивого. Вам нужно будет сделать то же самое, если вы используете модель «ролей».

Для получения более подробной информации следуйте документации: https://cartalyst.com/manual/sentinel/2.0#laravel-5

убедитесь, что вы находитесь на правильной версии: 2,0 для Laravel 5 и 1,0 для Laravel 4. *

В отношении второго вопроса, вы будете должны отправить электронное письмо клиенту с кодом активации (обычно код скрывается как строка запроса или что-то еще, поэтому пользователю необязательно нужно знать об этом), и чем вы активируете с помощью кода , Или, если вы предпочитаете, вы можете автоматически аутентифицироваться после регистрации.

Подробнее о activation on their documentation, если вы все еще не можете понять, что мы здесь, чтобы помочь, но сначала попробуйте.

4

ПОЛУЧЕНИЕ SENTINEL AUTHENTICATION-РАЗРЕШЕНИЯ ПАКЕТ ДЕЙСТВИТЕЛЬНО РАБОТАЕТ ДЛЯ ВСЕГО НАЧИНАЮЩИХ:

https://github.com/rydurham/Sentinel/blob/master/readme.md

Это очень автор. Если вы установили следуя инструкциям любого другого сайта, вам лучше удалить свою установку и снова запустить обновление композитора, чтобы избавиться от любых следов часового.

Установить следующие шаги ryan durham. (они, по крайней мере, действительны на дату публикации).

Как только вы это сделаете, вы обнаружите, что уже созданы предварительно созданные лезвия. Вы можете перейти в Регистр как первый и ввести свои данные (предварительно настроив параметры БД и почты).

Кроме того, в Mail.php в самой последней версии Laravel есть один параметр, измененный по сравнению с предыдущими версиями: один о шифровании. В моем случае мне нужно было установить его, как это было в прошлом, просто:

«шифрования» => «SSL» , а не «шифрования» => окр («MAIL_ENCRYPTION», $ _ENV [ 'MAIL_ENCRYPTION «]

во втором случае он не сможет подключиться к почтовому серверу.

Это говорит, да, что Стража уже что предварительно построено. После того, как вы заполните регистрационную форму, вы увидите, что вы добавили в базу данных, но все еще не активированы. Затем в вашем почтовом ящике вы получите ссылку, о которой я говорил. Нажмите на нее, и ваша учетная запись будет активирована.

+1

Я не думаю, что он ссылается на rydurham sentinel (что является старой реализацией Sentry 2 для laravel, а скорее Sentinel, что раньше было [премиальным пакетом Cartalyst] (https: //cartalyst.com/manual/sentinel/2.0) и недавно был открыт. Sentinel 2 устарел и не поддерживается и не должен использоваться. – Victor

+0

Привет, Виктор. Около недели назад я установил его от Райана Дарема, где я указал ссылку. Он отлично работает для меня. Вы имеете в виду, что то, что я использую, не поддерживается и устарело? – patricio

+1

Эй, Патрисио. Если вы используете Senty 2, то да. Cartalyst развил Sentry 2 некоторое время назад, и то, что должно было быть Sentry 3, стало Sentinel. До недавнего времени Sentinel был частью арсенала Cartalyst (который вам нужно заплатить, но недавно они его открыли). Пакет Райана Дарема имеет одно и то же имя, но на самом деле это интеграция между Sentry 2 и Laravel. Хотя это проект с открытым исходным кодом, Sentry 2 больше не поддерживается официально, и вы, вероятно, не получите никаких обновлений безопасности, если сам пакет durham/sentinel не будет обновлен. – Victor

3

Взгляните на этот пакет:
https://github.com/srlabs/centaur
это поможет вам встать и работает с cartalyst/sentinel

+1

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Только ссылки могут стать недействительными, если связанная страница изменится – slfan

+0

спасибо @slfan – YassinMK