【问题标题】:Microsoft ADAL acquireTokenSilentSync failsMicrosoft ADAL acquireTokenSilentSync 失败
【发布时间】:2020-05-14 12:19:58
【问题描述】:

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

【问题讨论】:

    标签: android azure-active-directory adal


    【解决方案1】:

    acquireTokenSilentSync 函数将首先查看缓存并自动检查令牌是否过期。此外,如果在缓存中没有找到合适的访问令牌,但刷新令牌可用,该函数将自动使用刷新令牌。此方法不会为用户显示 UI。如果需要提示,该方法将返回异常。您收到的错误提示说令牌缓存为空,请确保令牌在缓存中可用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-10
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 2016-09-24
      • 2017-04-13
      • 2021-05-10
      • 2016-09-09
      相关资源
      最近更新 更多