【问题标题】:Authenticate user through email using Sentinel使用 Sentinel 通过电子邮件对用户进行身份验证
【发布时间】:2015-08-04 01:38:10
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 谢谢!由于某种原因,我曾尝试过一次但没有成功,但现在效果很好。谢谢!
    猜你喜欢
    • 2014-01-25
    • 2018-02-12
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多