Php SSO(单点登录)的laravel-saml2实现中的身份验证持久性无限循环问题
我已经为我的客户实现了SSO登录,因为我已经根据可用的git存储库在laravel 5.2中实现了服务提供商 根据我已经实现的文档,登录和重定向工作正常,但问题是我不想使用身份验证方法来检查用户是否在我们的数据库中可用,所以它将检查用户是否登录Php SSO(单点登录)的laravel-saml2实现中的身份验证持久性无限循环问题,php,laravel,laravel-5,single-sign-on,saml-2.0,Php,Laravel,Laravel 5,Single Sign On,Saml 2.0,我已经为我的客户实现了SSO登录,因为我已经根据可用的git存储库在laravel 5.2中实现了服务提供商 根据我已经实现的文档,登录和重定向工作正常,但问题是我不想使用身份验证方法来检查用户是否在我们的数据库中可用,所以它将检查用户是否登录 public function handle($request, Closure $next) { if ($this->auth->guest()) { if ($request->ajax())
public function handle($request, Closure $next)
{
if ($this->auth->guest())
{
if ($request->ajax())
{
return response('Unauthorized.', 401);
}
else
{
return Saml2::login(URL::full());
//return redirect()->guest('auth/login');
}
}
return $next($request);
};
以下事件是用户登录第三方站点时发生的火灾
事件::侦听('Aacotroneo\Saml2\Events\Saml2LoginEvent',函数(Saml2LoginEvent$Event){
所以在我的例子中,我不想使用我们这边维护的数据库,它将从下面的代码转到无限循环,我在这里使用的代码
事件::侦听('Aacotroneo\Saml2\Events\Saml2LoginEvent',函数(\Aacotroneo\Saml2\Events\Saml2LoginEvent$Event){
尝试按照安装指南进行操作。我在注册本地用户会话时遇到问题。我创建了一个SamlEventListener,将其挂接到Saml2LoginEvent。当触发事件时,句柄被正确触发,因此我正在执行Auth::login($laravelUser)在这一点上似乎是成功的。虽然当重新加载页面并执行中间件时,$this->auth->guest()返回true,进入无限循环。有什么想法吗
$user = $event->getSaml2User();
$userData = [
'id' => $user->getUserId(),
'attributes' => $user->getAttributes(),
'assertion' => $user->getRawSamlAssertion()
];
$laravelUser = //find user by ID or attribute
//if it does not exist create it and go on or show an error message
Auth::login($laravelUser);
});
$user = $event->getSaml2User();
$userData = [
'id' => $user->getUserId(),
'attributes' => $user->getAttributes(),
'assertion' => $user->getRawSamlAssertion()
];
$email=$user->getUserId();
});