angular-oauth2-oidc: Должен ли redirect_uri быть /index.html?

#angular #pkce #angular-oauth2-oidc

Вопрос:

На PKCE примере angular-oauth2-oidc библиотеки

https://manfredsteyer.github.io/angular-oauth2-oidc/docs/additional-documentation/code-flow- -pcke.html

То redirect_uri есть

 window.location.origin   '/index.html'
 

Важно ли это с точки зрения безопасности?

Когда я добавляю /index.html , я получаю Page Not Found ошибку в своем приложении после перенаправления с сервера аутентификации.

Но когда я делаю это вот так:

 window.location.origin
 

это работает.

Должно ли это работать, index.html и я делаю что-то не так?

Ответ №1:

Вы когда-нибудь бываете http://yourdomain:yourport/index.html в гостях ? Что происходит, когда вы посещаете этот URL-адрес? Есть вероятность, что его не существует. В угловом приложении обслуживаются все маршруты index.html — вот что такое Одностраничное приложение по определению. Возможно, у вас есть домашний маршрут — например, /home

Вы должны перенаправиться на свой домашний маршрут, а не index.html.

В принципе, вы хотите:

 window.location.origin   '/home'
 

Или даже лучше:

 constructor(private router: Router) {}

this.router.navigateByUrl('/home')
 

Перенаправление на:

 window.location.origin
 

По сути, это просто домен и порт текущей страницы, например http://yourdomain:yourport , поэтому перенаправление, по сути, просто отправляет вас на ваш угловой маршрут по умолчанию. Ваш угловой маршрут по умолчанию должен быть определен в файле routing .ts вашего приложения. Иногда там есть маршрут «поймать всех», который, как я ожидаю, будет выбран, если в URL-адресе не определен конкретный маршрут.

В основном просто навестить … http://yourdomain:yourport … в браузере. На какую бы страницу вы ни попали, перенаправление window.location.origin должно привести вас туда.

В документах, на которые вы ссылаетесь, говорится:

URL СПА-салона, на который нужно перенаправить пользователя после перенаправления входа в систему: окно.местоположение.происхождение ‘/index.html’

Это всего лишь пример, и его не следует так жестко кодировать!

Комментарии:

1. Да, открываю app:port/index.html непосредственно в браузере не работает. Маршрут по умолчанию -/, который также обрабатывается в модуле маршрутизации по пути:». Вот куда я хочу быть перенаправлен. Причина, по которой я задавался этим вопросом, заключается в том, что перед переключением на PKCE я использовал неявный поток, и по какой-то причине он сработал.