MSAL: Почему рекомендуется установить перенаправление на пустую страницу?

#azure-ad-b2c #msal #msal.js

Вопрос:

Я читаю этот документ: https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/initialization.md

Написано, что:

При использовании всплывающих API-интерфейсов мы рекомендуем установить значение redirectUri на пустую страницу или страницу, на которой не реализован MSAL. Это поможет предотвратить потенциальные проблемы, а также повысить производительность.

  1. Что такое «потенциальные проблемы» и «производительность»?
  2. Если я установлю redirectUri пустую страницу, перенаправится ли пользователь на пустую страницу?

Ответ №1:

Для беззвучных и всплывающих потоков главное окно приложения (которое инициировало действия) будет отслеживать iframe/всплывающее окно для перенаправления обратно в приложение, а затем анализировать ответ. Поскольку это главное окно выполняет всю работу, MSAL не нужно запускать в URI перенаправления, используемом для этих действий.

Поскольку loginRedirect/acquireTokenRedirect само главное окно перенаправляется на экран входа в систему , а затем обратно в приложение, поэтому используемая страница перенаправления должна сама иметь MSAL для обработки ответа.

  1. Что такое «потенциальные проблемы» и «производительность»?

Не уверен в «потенциальных проблемах» и «производительности», но если мы установим здесь непустой uri перенаправления, это может вызвать проблему с таймаутом. Смотрите этот пост.

  1. Если я установлю перенаправление на пустую страницу, перенаправится ли пользователь на пустую страницу?

Нет. Это не перенаправит пользователя на пустую страницу, потому что все сделает главное окно.

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

1. Все это правильно. Что касается потенциальных проблем и производительности, для беззвучных и всплывающих запросов браузеру необходимо загрузить ваш uri перенаправления, прежде чем можно будет проанализировать ответ, и если загрузка этой страницы займет много времени, это может повлиять на производительность этих запросов. Наиболее распространенная проблема, которую мы видим, — это страница, используемая для uri перенаправления, искажает/удаляет хэш ответа до того, как основной экземпляр MSAL сможет его проанализировать, что может привести к тайм-аутам.