我正在使用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的新手。任何帮助,将不胜感激!提前谢谢!
答案 0 :(得分:3)
如果您要使用Sentry
,则不再使用Laravels Auth
。它们完全相互独立。
相反,您现在使用
$user = Sentry::getUser();
答案 1 :(得分:0)
要访问哨兵会话,请使用此功能 {{哨兵::的getUser()}}
Auth :: user()返回laravel会话对象。