1

У меня есть интерфейс (SPA, angular2, lite-server) и скрытый бэкэнд (не публичный, то есть localhost: 8080, весенний ботинок + весенняя безопасность), интерфейс может обращаться к бэкэнд путем проксирования frontend/api звонки backend/api под капотом.OAuth2: Код авторизации Поток гранта

В принципе, шаги для этого вида потока oauth2 являются:

  1. На UI - хит URL на сервер авторизации с redirect_uri указано
  2. Авторизоваться
  3. Вернитесь к redirect_uri с кодом доступа
  4. ???
  5. обмена сервер код доступа для маркеров авторизации и сохраняет его
  6. пользователя (аутентификацию) получает обратно на страницу, он был ограничен доступом

Я не могу получить шаги от 3 до 5. Как мой бэкэнд-сервер невидим, redirect_uri должен быть тем, который находится в интерфейсе. Я мог бы использовать frontend/api/auth, который проксирует вызов backend/api/auth, и бэкэнд будет успешно получать разрешение на авторизацию, однако в этом случае пользователь не будет перенаправлен обратно во внешний интерфейс. Итак, должен ли я получить код в javascript и сделать POST до /api/auth вместо javascript?

Также я не понимаю, как вернуться к шагу 6 после этого, поскольку после того, как все перенаправления SPA-приложения будут перезагружены (сброс состояния), а redirect_uri - это URL-адрес /api/auth.

+0

Как вы это решили? – flyer88

+0

Первое, что произошло - переключилось на весенне-социальное, а не на весну-oauth2, но как только вы получили эту идею, вы можете сделать то же самое с весной-oauth2. Итак, шаги: 0) Либо настройте URL-адрес перенаправления, либо укажите его как параметр для перенаправления на/api/auth/facebook. 1) Нажмите значок авторизации ->/api/auth/facebook -> backend/auth/facebook 2) бэкэнд начинает танцевать и на полном идет к перенаправлению url (см. шаг 0) 3) под капотом это будет/api/auth/facebook? authorization_code = blabla 4) Весна заботится об этом, убедитесь, что вы настроили весну перенаправить на UI после успеха (successHandler.setDefaultTargetUrl) –

ответ

0

Если я получу вопрос правильно, самым простым было бы «разоблачить» сервер через localtunnel или ngrok.

Смежные вопросы