[*]https://sso-ideshipy.test (sso server)
< li>https://cookie-1.test (web web) li/li/li/li> li/li> li/li> li/li/li> li/li> li/li/li> /> Что я реализовал:
Frontend перенаправляет пользователя для авторизации, а затем вызывает обратно в /аут/Callback.
В обратном вызове я обмениваюсь кодом авторизации на доступе и обновления с использованием выделенного/oauth/tokens endpoint. /> Laravel отвечает: < /p>
Код: Выделить всё
{
"access_token": "...",
"refresh_token": "...",
"expires_in": "..."
}
$response = Http::asForm()->post(config('services.sso.host').'/oauth/token', [
'grant_type' => 'authorization_code',
'client_id' => $request->get('client_id'),
'redirect_uri' => $request->get('redirect_uri'),
'code' => $request->get('code'),
'code_verifier' => $request->get('code_verifier'),
]);
$data = $response->json();
$minutes = 60 * 24 * 30;
$cookie = cookie(
'refresh_token',
$data['refresh_token'],
$minutes,
null,
null,
true,
true,
false,
'Lax'
);
return response()->json([
'access_token' => $data['access_token'],
'expires_in' => $data['expires_in'],
])->cookie($cookie);
< /code>
В основном, теперь SSO Server будет обмениваться кодом авторизации на токены JWT. Но это не сработало из -за ошибки CSRF.
Подробнее здесь: https://stackoverflow.com/questions/795 ... ravel-pass
Мобильная версия