使用 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
在 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