Я реализовал настраиваемую политику изменения пароля в соответствии с документация и используйте msal.js в интерфейсе, чтобы начать процесс смены пароля. Это работает, учитывая, что пользователю необходимо снова войти в систему, хотя пользователь уже вошел в приложение. Поэтому он каждый раз запрашивает учетные данные пользователя. Почему B2C не определяет, что пользователь уже вошел в систему, и как я могу решить эту проблему? Спасибо!
Пользовательская политика изменения пароля Azure AD B2C, пользователь должен входить в систему каждый раз
Ответы (2)
MSAL.js устанавливает параметр подсказки, поэтому заставляет B2C поэтому игнорируйте файл cookie, принудительно выполняя вход.
const urlNavigate = authenticationRequest.createNavigateUrl(scopes) + "&prompt=select_account" + "&response_mode=fragment";
Вы можете проверить это, взяв URL-адрес, который MSAL.js перенаправляет пользователя, и удалив параметр запроса приглашения.
Связанная проблема GitHub: Разрешить управление параметром приглашения. Нам нужно убедить владельцев библиотеки MSAL, что нам нужен контроль над этим параметром.
Если вы пытаетесь выполнить тестирование через конечную точку «Запустить сейчас» настраиваемых политик B2C, просто удалите параметр запроса & prompt = login из ссылки. Если вы уже вошли в систему, он пропустит вход, если нет, он все равно запросит ваши учетные данные.
Кредит Джасу Сури: Пользовательская политика Azure B2C EditProfile без предварительного входа в систему