#angular #pkce #angular-oauth2-oidc
Вопрос:
На PKCE
примере angular-oauth2-oidc
библиотеки
То 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 я использовал неявный поток, и по какой-то причине он сработал.