我正在使用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会话对象