MSALErrorDomain 错误 -42101 - MSALErrorMismatchedUser

MSALErrorDomain error -42101 - MSALErrorMismatchedUser

我们的一位用户在 iOS 应用上看到以下错误:

MSALErrorDomain error -42101 - MSALErrorMismatchedUser

我们目前无法在内部重现该问题,并已尝试了解可能导致此问题的原因。

到目前为止,我们所知道的是这个错误似乎是由调用 acquireTokenSilent.

引起的

我们的应用程序只支持一个帐户同时登录,注销/删除应用程序无法解决问题。同一用户可以使用通过 MSAL 验证的不同帐户而不会出现问题。

我们以一种非常简单的方式使用 MSAL,用户首先通过 acquireToken 执行交互式登录,然后应用程序发出的任何数据请求都使用 acquireTokenSilent 以获得 accessToken 然后传递给后端的请求。注销时,我们从 MSALPublicClientApplication.

中删除所有帐户

我们不使用钥匙串共享。

任何有关可能导致此问题的情况的见解都将不胜感激。

问题在于,在开发过程中的某个时刻,我们更改了用于初始化 MSALAuthority 对象的 URL。

MSALPublicClientApplication 实例中删除 MSALAccount 后,此更改似乎无法正确删除钥匙串数据。

使用找到的代码删除我们应用程序的所有钥匙串数据 here 解决了问题。