1

我正在使用 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 的新手。任何帮助,将不胜感激!提前致谢!

4

2 回答 2

3

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

相反,您现在使用

$user = Sentry::getUser();

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

于 2014-03-19T08:10:47.483 回答
0

要访问哨兵会话用户,请使用此 {{Sentry::getUser()}}

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

于 2014-03-19T08:18:09.337 回答