Для приложения, использующего Oauth 2.0 поток кода авторизации через Microsoft msal.js, я вхожу в систему, указав свои учетные данные. Затем я полностью очищаю состояние своего браузера, кеш, локальное / сеансовое хранилище и обновляю страницу, чтобы одностраничное приложение не знало, что я вошел в систему, но я все еще вошел в систему с серверной частью Microsoft.
Когда я инициирую другой вход в систему, он может сделать это в автоматическом режиме, не запрашивая повторно мои учетные данные.
Очевидно, через запрос к https://login.microsoftonline.com/redacted/oauth2/v2.0/token
, серверная часть Microsoft может аутентифицировать меня как того же пользователя, даже если я очистил память js и весь кеш / сеанс / локальное хранилище
Как этот запрос получает действительный код / code_verifier для отправки на сервер авторизации, чтобы вернуть токен доступа для пользователя без повторной ввод учетных данных?
Подробнее:
Следующее требует, чтобы я повторно ввел свои учетные данные (как я и ожидал):
- личная вкладка / инкогнито
- закрытие браузера и его повторное открытие
- используя другой браузер на том же компьютере
Следующее не требует от меня повторного ввода учетных данных и возможности входа в систему без вывода сообщений:
- аутентификация на новой вкладке с очищенным локальным состоянием
- аутентификация в новом окне того же браузера с очищенным локальным состоянием
- обновление вкладки и очистка локального состояния
Я ожидал, что для трех сценариев not потребуются учетные данные, но это не так. Как я могу пройти аутентификацию без сохранения в браузере какого-либо локального состояния?