Если у вас есть клиент Javascript, сам клиент должен действовать как клиент OAuth2 .
То есть сервер - это не то, что получает токен.Клиент, приложение javascript в браузере, будет извлекать токен с сервера авторизации.
Этого можно достичь, используя тип гранта implicit
.
В этом типе предоставления нет client_secret, но у вас должен быть действительный client_id.Вы также не получите токен обновления.Но вы можете получить токены доступа и id_token (если у вас есть сервер OIDC).
Ваш вопрос намекает на то, что вы выполняете грант на стороне сервера (код авторизации, пароль и т. Д.), А затем отправляете этот токен клиенту javascript.Это было бы неправильно.
Для хорошего описания OAuth2 мы опубликовали это видео: https://www.youtube.com/watch?v=u4BHKcZ2rxk
Ваше приложение JavaScript будет делать следующее:
- У меня есть действительный токен?Нет
- Запустить неявное предоставление
- Получить токен с сервера авторизации
- Сохранить токен в памяти
var token = ....
- Использовать токен для вызова конечных точек API на сервере
- Повторяйте шаг 5 до тех пор, пока токен больше не будет действителен
- Вернитесь к шагу 1
Следующим шагом для вас будет просмотр видео и узнайте больше о неявном типе предоставления
Как вы уже догадались, переход на путь получения токена на сервере и последующей отправки его незащищенному клиенту подвергает ваши приложения таким образом, что вынаверное не хочу.