使用 Laravel 的 Sentry 2 身份验证工作流程
Posted
技术标签:
【中文标题】使用 Laravel 的 Sentry 2 身份验证工作流程【英文标题】:Sentry 2 Authentication workflow with Laravel 【发布时间】: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 的新手。任何帮助,将不胜感激!提前致谢!
【问题讨论】:
【参考方案1】:要访问哨兵会话用户使用这个 Sentry::getUser()
Auth::user() 返回 laravel 会话对象。
【讨论】:
是的,我想通了。谢谢! :)【参考方案2】:如果你打算使用Sentry
,你就不再使用 Laravels Auth
。它们完全相互独立。
相反,您现在使用
$user = Sentry::getUser();
见https://cartalyst.com/manual/sentry/users/find
【讨论】:
哦,是的。不知道他们俩是独立的!谢谢。 :)以上是关于使用 Laravel 的 Sentry 2 身份验证工作流程的主要内容,如果未能解决你的问题,请参考以下文章
Laravel + React,使用 Laravel 身份验证的 api
使用 Laravel 6.20.27 (PHP v7.4.19) 的 Sentry v2.10 的 SSL 错误