【问题标题】:Sentry 2 Authentication workflow with Laravel使用 Laravel 的 Sentry 2 身份验证工作流程
【发布时间】:2014-04-25 08:02:24
【问题描述】:

我正在使用 Sentry 2 构建身份验证系统。我面临的问题是,在用户通过 Sentry 进行身份验证并登录后,我无法为用户创建会话。这是我的控制器代码:

public function postLogin()
{
    $credentials = array(
        'email' => Input::get('email'),
        'password' => Input::get('password')
    );

    try 
    {
        $user = Sentry::authenticate($credentials, false);
        if ($user)
        {
            if(Input::get('remember')=='true')
                Sentry::loginAndRemember($user);     
        }
    }
    catch(\Exception $e)
    {
        return View::make('hello')->withErrors(array('login' => $e->getMessage()));
    }
    try
    {
        Sentry::login($user, false);
    }
    catch (Cartalyst\Sentry\Users\LoginRequiredException $e)
    {
        echo 'Login field is required.';
    }
    catch (Cartalyst\Sentry\Users\UserNotActivatedException $e)
    {
        echo 'User not activated.';
    }
    catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
    {
        echo 'User not found.';
    }
}

登录后,为了检查用户是否真正登录,我进行了另一个控制器操作,转储了经过身份验证的用户详细信息:

public function index()
{
    var_dump(Auth::user());
}

var_dump() 返回空值。我在这里想念什么?我是 Laravel 和 Sentry 的新手。任何帮助,将不胜感激!提前致谢!

【问题讨论】:

    标签: php laravel authentication laravel-4 cartalyst-sentry


    【解决方案1】:

    要访问哨兵会话用户使用这个 {{Sentry::getUser()}}

    Auth::user() 返回 laravel 会话对象。

    【讨论】:

    • 是的,我想通了。谢谢! :)
    【解决方案2】:

    如果你打算使用Sentry,你就不再使用 Laravels Auth。它们完全相互独立。

    相反,您现在使用

    $user = Sentry::getUser();
    

    https://cartalyst.com/manual/sentry/users/find

    【讨论】:

    • 哦,是的。不知道他们俩是独立的!谢谢。 :)
    猜你喜欢
    • 2014-01-24
    • 2015-01-02
    • 2013-07-29
    • 2014-12-28
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 2021-07-20
    相关资源
    最近更新 更多