ClientAuthError: state_mismatch: ошибка несоответствия состояний. Пожалуйста, проверьте вашу сеть. Продолжение запросов может привести к переполнению кэша.

я используюmsal-browser v2.37.1сNuxt3/Vue3и в большинстве случаев это работает совершенно нормально. Он отлично работает, когда URL-адрес window.location выглядит следующим образом:

https://test.comилиhttps://test.com/user/2?page=profile

но по какой-то причине показывает, что когда я добавляю дополнительный параметр запроса, он начинает давать сбой, например

https://test.com/user/2?page=profile&section=identificationи выдает эту ошибку:

ClientAuthError: state_mismatch: ошибка несоответствия состояний. Пожалуйста, проверьте вашу сеть. Продолжение запросов может привести к переполнению кэша. в ClientAuthError2.AuthError2 [как конструктор]

Итак, просто добавив дополнительный параметр, он начинает жаловаться.

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

РЕДАКТИРОВАТЬ: После дальнейшего расследования выяснилось, что serverResponseHash иcacheState не совпадают.

Исходный код MSAL — показывает точное место, где выдает ошибку.

1 ответ

Исправлено, изменив местоположение кеша на «localStorage». Это изменение необходимо в конфигурации msal перед созданием экземпляра PublicClientApplication.

      auth: {
  ...
},
cache: {
  cacheLocation: BrowserCacheLocation.LocalStorage,
  storeAuthStateInCookie: false,
},
Другие вопросы по тегам