Авторизация open id pkce keycloak
Я пытаюсь прикрутить авторизацию keycloak openid pkce на мое js приложение.
Кода дело доходит до обмена кода доступа возникает следующая проблема:
При попытке обменять ключ доступа на токен возникает ошибка браузера
Отсутствует заголовок Access-Control-Allow-Origin
В панели разработчика я вижу что не было попытки отправить options запрос на сервер авторизации. Если сменить 'Content-Type' на 'application/json', то предварительный запрос пройдет успешно, но тогда я получу 415 ошибку. Проверял в postman, сервер keycloak на options запросы отвечает правильно, заголовок "Access-Control-Allow-Origin" присутствует.
Вот пример функции:
async function getAccessToken(code) {
const tokenEndpoint = `${keycloakConfig.url}/realms/${keycloakConfig.realm}/protocol/openid-connect/token`;
const codeVerifier = sessionStorage.getItem('codeVerifier');
const data = {
grant_type: 'authorization_code',
client_id: keycloakConfig.clientId,
code: code,
redirect_uri: window.location.href,
code_verifier: codeVerifier,
};
const response = await fetch(tokenEndpoint, {
method: 'POST',
credentials: 'include',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: data,
});
const tokenData = await response.json();
const accessToken = tokenData.access_token;
return accessToken;
}