我有三个不同的Laravel网站,我希望用户在其中一个网站登录后,可以自动登录到另外两个网站。
例如,如果您在stackoverflow上登录,然后打开stackexchange,您将使用StackOverflow帐户登录。
我尝试了许多软件包,但它们都以无限异常结束或根本不起作用。大多数软件包基于SAML,我不知道为什么它们不适用于我?我不知道我错过了什么?是否有任何配置可以使其正常工作?我正在使用laravel 5.6。所有应用程序都在同一台服务器上。
我尝试了很多基于SAML、OpenID和共享会话的解决方案,但它们都没有与我一起工作。我不知道我是否漏掉了什么东西。这是我尝试的最后一个示例,但它并没有起作用。
这是我的代码
SITE A
$site_b = 'http://s_sesstion_2.test/';
Route::get('/', function (Request $request) use ($site_b) {
$session_id = Session::getId();
try {
$http = new Client();
$response = $http->post($site_b . 'api/sessions/server', [
'form_params' => [
'session_id' => $session_id,
],
'headers' => [
'Accept' => 'application/json',
]
]);
} catch (Exception $e) {
dd($e->getMessage());
}
return view('welcome');
});
SITE B (路由/api.php)
Route::post('/sessions/server', function (Request $request) {
Storage::disk('local')->put('file.txt', $request->get('session_id'));
});
SITE B (路由/ web.php)
Route::get('/', function () {
$session_id = Storage::disk('local')->get('file.txt');
Session::setId($session_id);
Session::start();
//return Session::getId();// will return the same session id
return \auth()->user();//this should return the auth user but it did not!!
});
我想要的就是在A网站登录,然后打开B网站时自动登录。 我接受任何实现此目的的解决方案