Как поток кода авторизации запоминает пользователя после очистки локального состояния?

Для приложения, использующего Oauth 2.0 поток кода авторизации через Microsoft msal.js, я вхожу в систему, указав свои учетные данные. Затем я полностью очищаю состояние своего браузера, кеш, локальное / сеансовое хранилище и обновляю страницу, чтобы одностраничное приложение не знало, что я вошел в систему, но я все еще вошел в систему с серверной частью Microsoft.

Когда я инициирую другой вход в систему, он может сделать это в автоматическом режиме, не запрашивая повторно мои учетные данные.

Очевидно, через запрос к https://login.microsoftonline.com/redacted/oauth2/v2.0/token, серверная часть Microsoft может аутентифицировать меня как того же пользователя, даже если я очистил память js и весь кеш / сеанс / локальное хранилище

Как этот запрос получает действительный код / code_verifier для отправки на сервер авторизации, чтобы вернуть токен доступа для пользователя без повторной ввод учетных данных?


Подробнее:

Следующее требует, чтобы я повторно ввел свои учетные данные (как я и ожидал):

  • личная вкладка / инкогнито
  • закрытие браузера и его повторное открытие
  • используя другой браузер на том же компьютере

Следующее не требует от меня повторного ввода учетных данных и возможности входа в систему без вывода сообщений:

  • аутентификация на новой вкладке с очищенным локальным состоянием
  • аутентификация в новом окне того же браузера с очищенным локальным состоянием
  • обновление вкладки и очистка локального состояния

Я ожидал, что для трех сценариев not потребуются учетные данные, но это не так. Как я могу пройти аутентификацию без сохранения в браузере какого-либо локального состояния?


person Jordan    schedule 18.12.2020    source источник
comment
примечание: MSAL выйти из системы   -  person Jordan    schedule 19.12.2020


Ответы (1)


Библиотека Microsoft хранила файл cookie, принадлежащий AAD, а не моему приложению. ответ на github

person Jordan    schedule 21.12.2020