使用Laravel的Sentry 2身份验证工作流


Sentry 2 Authentication workflow with Laravel

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

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.';
    }
}

在我登录之后,为了检查用户是否真的登录了,我做了另一个控制器动作来转储Authenticated用户的详细信息:

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

var_dump()返回null。我遗漏了什么?我是Laravel和Sentry的新手。任何帮助将不胜感激!提前感谢!

如果您打算使用Sentry,您将不再使用Laravels Auth。它们彼此完全独立。

现在使用

$user = Sentry::getUser();

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

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

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