У меня есть два локальных сервера:
[*]https://sso-idespe.test.test (это основной сервер для входа в систему)
/> < /ul>
Я реализовал «грант кода авторизации с помощью PKCE». /> Ниже приведен код на cookie-1.test для перенаправления пользователя на сервер ssO-Deverify.test :
Код: Выделить всё
async function onLogInClick(): Promise {
const state = // some function
const codeVerifier = // some function
const codeChallenge = // some function
const params = new URLSearchParams({
client_id: SSO_CLIENT_ID,
redirect_uri: 'https://cookie-1.test:8080/auth/callback',
response_type: 'code',
scope: '',
state: state,
code_challenge: codeChallenge,
code_challenge_method: 'S256'
});
const authorizationUrl = `${SSO_HOST}/oauth/authorize?${params.toString()}`;
window.location.href = authorizationUrl;
}
Код: Выделить всё
async function onDOMLoaded() {
// ... some logic before
const tokenPayload = new URLSearchParams({
grant_type: 'authorization_code',
client_id: SSO_CLIENT_ID,
redirect_uri: 'https://cookie-1.test:8080/auth/callback',
code_verifier: codeVerifier || '',
code: code || ''
});
const tokenResponse = await axios.post(
`${SSO_HOST}/oauth/token`,
tokenPayload.toString(),
{ headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }
);
console.log('Token response:', tokenResponse.data);
}
Я добавил еще одну конечную точку /аутентификацию < /code> on ssO-EdIendify.test < /strong>. Его реализация заключается в следующем: < /li>
< /ol>
Код: Выделить всё
public function auth(Request $request) {
$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'),
]);
}
Я не хочу исследовать или спрашивать, как отключить эту защиту, так как это может повысить проблемы с безопасностью. /> Laravel/Passport предназначен для использования веб-приложениями с рендерингом на стороне клиента?>
Подробнее здесь: https://stackoverflow.com/questions/795 ... ravel-pass
Мобильная версия