使用Sentinel

时间:2015-08-04 01:38:11

标签: php laravel acl laravel-5.1 cartalyst-sentinel

有没有办法通过Cartalyst Sentinel中的电子邮件/链接/代码对用户进行身份验证?

我在Laravel 5.1中构建一个简单的用户注册,在注册后发送激活电子邮件。 通过点击链接,我想在相同的操作中激活和验证用户,但我还没有设法做到这一点。

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

有没有办法做到这一点? 提前谢谢!

1 个答案:

答案 0 :(得分:2)

如果您拥有或可以检索用户对象(无论如何都需要完成用户激活),那么您可以使用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