使用 Sentinel 通过电子邮件验证用户

Authenticate user through email using Sentinel

在 Cartalyst Sentinel 中是否有任何方法可以通过 email/link/code 对用户进行身份验证?

我正在 Laravel 5.1 中构建一个简单的用户注册,它会在注册后发送一封激活电子邮件。 通过单击 link,我想在同一操作中激活和验证用户,但我没能做到。

唯一的方法似乎是传递凭据 (Sentinel::($credentials)),但我只有 $code$id,需要激活,它要求输入密码(顺便说一句,通过电子邮件发送有点不安全)。

有什么办法吗? 提前致谢!

如果您拥有或可以检索用户对象(无论如何您都需要完成用户激活),那么您可以使用 login() 在没有凭据的情况下登录用户。

$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