Okta Widget НЕ рендеринг
В настоящее время используется 1.6.0 скриптов и CSS-файлов. У меня есть виджет, интегрированный в мое приложение Angular 1.5.x. У меня возникли проблемы с получением 404 при попытке отобразить виджет OKTA в качестве запроса GET для:
https://*.oktapreview.com/api/v1/sessions/me
Это означает, что виджет визуализируется один раз, и я могу войти в систему, но как только я выхожу из системы, я не могу повторно визуализировать виджет без необходимости сначала обновлять браузер.
Кто-нибудь нашел и решил эту проблему?
2 ответа
Я думаю, что это может быть связано с проблемой переполнения стека. Можете ли вы проверить настройки конфиденциальности?
Причина этой проблемы в том, что виджет обменивается sessionToken
(который вы получаете после входа в систему) с id_token
через скрытый iframe, в это время также устанавливается cookie сессии. Но, так как это в <iframe>
считается сторонним cookie.
В настоящее время нет хорошего способа обойти эту проблему, если в вашем браузере отключены сторонние файлы cookie без перенаправления на Okta для установки файла cookie сеанса. На этой неделе будет выпущена новая версия (1.8.0) виджета, которая облегчит эту задачу (см. Этот коммит, посвященный этой проблеме). В этой новой версии передача в authParams.display = 'page' вызовет /authorize
через редирект, а не через скрытый iframe.
Теперь, когда 1.8.0 доступен через CDN Okta, вот пример того, как использовать authParams.display = 'page'
настройка описана выше:
<script>
var config = {
baseUrl: 'https://YOUR-OKTA-ORG-HERE.okta.com',
clientId: 'YOUR-OKTA-CLIENT-ID-HERE',
redirectUri: 'YOUR-REDIRECT-URL-HERE',
authParams: {
responseType: 'code',
display: 'page',
scopes: ['openid', 'email', 'profile'],
}
};
var oktaSignIn = new OktaSignIn(config);
oktaSignIn.renderEl({ el: '#app-container' }, () => {});
</script>