Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SSO(单点登录)的laravel-saml2实现中的身份验证持久性无限循环问题_Php_Laravel_Laravel 5_Single Sign On_Saml 2.0 - Fatal编程技术网

Php SSO(单点登录)的laravel-saml2实现中的身份验证持久性无限循环问题

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())

我已经为我的客户实现了SSO登录,因为我已经根据可用的git存储库在laravel 5.2中实现了服务提供商

根据我已经实现的文档,登录和重定向工作正常,但问题是我不想使用身份验证方法来检查用户是否在我们的数据库中可用,所以它将检查用户是否登录

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();
    });