由ADAL生成的令牌的过期时间为1小时。要创建令牌,应用程序将调用ADAL方法acquireToken。当重新打开应用程序或参与后台/空闲时间超过1小时的应用程序时,必须刷新令牌。此刷新应在未经用户同意的情况下在后台进行。为此,应用程序调用ADAL方法acquireTokenSilentSync。此函数将抛出一个异常,即ADAL异常AuthenticationException。因此,必须强制关闭应用程序,以便在重新打开后再次创建令牌。日志如下
Token cache item contains empty refresh token, cannot continue refresh token request ver:3.0.2 Android 28 null
Microsoft.ADAL.request_id: 34533-b84f-45ae-a4f5-29e7h6789d02
Microsoft.ADAL.api_error_code: AUTH_REFRESH_FAILED_PROMPT_NOT_ALLOWED
Microsoft.ADAL.is_frt: false
Microsoft.ADAL.device_id: lSZf/vWb4AcUTIgbKXDVlQ7jYmBGmLPEMLwHYQao3C4=
Microsoft.ADAL.cache_event_count: 3
[2020-05-14 05:11:21 - 344267-f177-48f8-ad39-ec085udh240c] AUTH_REFRESH_FAILED_PROMPT_NOT_ALLOWED:Prompt is not allowed and failed to get token. No result returned from acquireTokenSilent ver:3.0.2 Android 28 null发布于 2020-05-16 03:25:31
acquireTokenSilentSync函数将首先查看缓存并自动检查令牌过期。此外,如果在缓存中未找到合适的访问令牌,但有刷新令牌可用,则函数将自动使用刷新令牌。此方法不会为用户显示UI。如果需要提示,该方法将返回异常。您收到的错误提示表示令牌缓存为空,请确保令牌在缓存中可用
https://stackoverflow.com/questions/61797193
复制相似问题