我已将单点登录(SSO)添加到我的Laravel应用程序中,并且我遇到了Internet Explorer的问题。
当我的IdP重定向到我的控制器时,我的控制器处理SSO响应,使用Guzzle HTTP将用户登录到另一个API,然后将用户重定向到前端。
这是我的(缩短的)代码。
$this->auth->processResponse($_SESSION['AuthNRequestID']);
// Some error and authentication checks here
$email = // get email from sso data
/* Check if a user exists for the given email */
/* User exists, lets create tokens for the user */
$ec_api_data = $user->createToken('EC-API-Access-Token');
/* Log the user in to another API using Guzzle */
$client = new \GuzzleHttp\Client(["verify" => false]);
$cw_request_data = [
"form_params" => [
"login" => $email
// other params
]
];
$res = $client->request('POST', $this->frontend_url . '/auth/api-login', $cw_request_data);
$cw_api_data = $res->getBody()->getContents();
// Redirect to the frontend
header("Location: $this->frontend_url/single-sign-on?email=$email&code=$code");
die();
当我的IdP在/ sso / acs重定向到我的应用程序时,会调用此代码。它适用于Chrome,Firefox和Safari。
在Internet Explorer中,当IdP重定向到我的应用程序时,它只是“中止”了请求。
任何帮助将不胜感激。