У меня есть угловой SPA, и я хочу использовать неявный поток OAuth2 Неявный поток OAuth2
С авторизованным сервером авторизации, если у меня активная сессия с ним и я отправляю, поместите этот URL в адресную строку браузера
https://server.example.com/authorize?response_type=token&client_id=s6BhdRkqt3&state=xyz&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1
Я правильно перенаправлен с access_token на
HTTP/1.1 302 Found
Location: http://client.example.com/cb#access_token=2YotnFZFEjr1zCsicMWpAAs&state=xyz&token_type=example&expires_in=3600
В спецификации указывается, что client.example.com/cb
должен возвращать веб-страницу (обычно документ HTML со встроенным скриптом), способную получить доступ к URI полного перенаправления, включая фрагмент, сохраненный пользовательским агентом, и извлечь маркер доступа. Я реализовал страницу со скриптами, получающими access_token от window.location.hash
, и она работает.
Теперь, поскольку SPA уже загружен, и мне также нужно сделать это для обновления токенов, я хочу сделать это с помощью запроса ajax. Однако с ajax, перенаправление выполняется автоматически, и я получаю только HTML-страницу, но access_token теряется. Я вижу access_token в заголовке Location ответа, но не знаю, как получить к нему доступ.
Auth0 и Okta , кажется, поддерживают тихую аутентификацию с использованием неявного потока, как они это делают?
Любая помощь будет принята с благодарностью.