Аутентифицировать пользователя по электронной почте с помощью Sentinel

Есть ли способ аутентификации пользователя по электронной почте / ссылке / коду в Cartalyst Sentinel?

Я создаю простую регистрацию пользователей в Laravel 5.1, которая отправляет электронное письмо с активацией после регистрации.
Нажав на ссылку, я хотел бы активировать и аутентифицировать пользователя в том же действии, но мне не удалось это сделать.

Кажется, единственный способ передать учетные данные (Sentinel::($credentials)), но у меня просто есть $code а также $id, необходимый для активации, и он запрашивает пароль (кстати, было бы немного небезопасно при отправке по электронной почте).

Есть какой-либо способ сделать это?
Заранее спасибо!

1

Решение

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

$user = Sentinel::findById($id);

Sentinel::login($user);

Весь процесс должен выглядеть примерно так:

$user = Sentinel::findById($id);

if ( ! Activation::complete($user, $activationCode))
{
// ERROR - Invalid or expired activation code.
}

// Login the User
Sentinel::login($user);

// Redirect to where you want to take them
2

Другие решения

Других решений пока нет …