#javascript #reactjs #azure #msal #azure-static-web-app
#javascript #reactjs #azure #msal #azure-static-web-app
Вопрос:
В моем приложении React, размещенном в Azure как статическое веб-приложение, я использую библиотеку MSAL для аутентификации. Чтобы создать новый Msal.UserAgentApplication, мне нужно передать объект конфигурации, который, в частности, содержит redirectUri. Что-то вроде:
const msalConfig = {
auth: {
clientId: "75d84e7a-40bx-f0a2-91b9-0c82d4c556aa",
authority: "https://login.microsoftonline.com/common",
redirectUri: "www.example.org/start",
},
...
Мне интересно: как я могу использовать относительный URL-адрес перенаправления, а не абсолютный?
Конкретная проблема, которую я пытаюсь решить, заключается в следующем: когда я запускаю и тестирую приложение локально, я хочу перенаправить на localhost:3000 /start вместо www.example.org/start . До сих пор я не нашел лучшего метода, чем переключение файла конфигурации перед каждым запуском / развертыванием, но это раздражает и, конечно, может быть легко забыто…
Ответ №1:
Вы можете сделать его динамическим следующим образом:
const msalConfig = {
auth: {
redirectUri: window.location.origin '/start'
}
}
Это берет текущее начало координат и добавляет / начало в конец.
Таким образом, он работает локально и в развернутой среде (средах).
Комментарии:
1. Проблема в том, что в Azure мы должны настроить redirectUri, который точно соответствует тому, который у нас есть в нашем коде. Итак, если наши локальные, непроизводственные, производственные uri перенаправления отличаются, как Azure узнает, какой из них действителен
2. Вы можете настроить все допустимые URI при регистрации приложения.