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§ion=identification
и выдает эту ошибку:
ClientAuthError: state_mismatch: ошибка несоответствия состояний. Пожалуйста, проверьте вашу сеть. Продолжение запросов может привести к переполнению кэша. в ClientAuthError2.AuthError2 [как конструктор]
Итак, просто добавив дополнительный параметр, он начинает жаловаться.
Я попытался изучить исходный код msal, но не смог найти фрагмент, в котором возникает эта ошибка. Я попробовал добавитьstate
в конфигурации msal при инициировании запроса, но результат тот же.
РЕДАКТИРОВАТЬ: После дальнейшего расследования выяснилось, что serverResponseHash иcacheState не совпадают.
Исходный код MSAL — показывает точное место, где выдает ошибку.
1 ответ
Исправлено, изменив местоположение кеша на «localStorage». Это изменение необходимо в конфигурации msal перед созданием экземпляра PublicClientApplication.
auth: {
...
},
cache: {
cacheLocation: BrowserCacheLocation.LocalStorage,
storeAuthStateInCookie: false,
},