Есть ли способ аутентификации пользователя по электронной почте / ссылке / коду в Cartalyst Sentinel?
Я создаю простую регистрацию пользователей в Laravel 5.1, которая отправляет электронное письмо с активацией после регистрации.
Нажав на ссылку, я хотел бы активировать и аутентифицировать пользователя в том же действии, но мне не удалось это сделать.
Кажется, единственный способ передать учетные данные (Sentinel::($credentials)
), но у меня просто есть $code
а также $id
, необходимый для активации, и он запрашивает пароль (кстати, было бы немного небезопасно при отправке по электронной почте).
Есть какой-либо способ сделать это?
Заранее спасибо!
Если у вас есть или вы можете получить пользовательский объект (который в любом случае необходим для активации пользователей), вы можете использовать авторизоваться() войти в систему пользователя без его учетных данных.
$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
Других решений пока нет …