Как использовать относительные URL-адреса в redirectUri MSAL?

#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 при регистрации приложения.