【问题标题】:Refresh Token No getting during Authentication MSAL ANDROID Azure AD B2C身份验证期间未获取刷新令牌 MSAL ANDROID Azure AD B2C
【发布时间】:2021-01-03 00:21:35
【问题描述】:

我已使用 MSAL 在我的 Android 应用程序上集成了 Azure AD B2C,登录和注册都按预期工作。 access token 只有在认证成功后才会收到。一旦认证成功,就不会收到refresh Token。我正在使用范围值 - https://icorg.onmicrosoft.com/ffc-60c4234-bf7aff196847/offline_access 。没有Refresh Token 的原因是什么??

【问题讨论】:

  • 尝试用offline_access而不是https://icorg.onmicrosoft.com/ffc-60c4234-bf7aff196847/offline_access指定范围。
  • @JoyWang - 我试过了,现在我无法在登录期间进行身份验证。
  • 您是用自己的 api 请求令牌吗?如果是这样,请尝试使用空格将它们分开,例如https://icorg.onmicrosoft.com/ffc-60c4234-bf7aff196847/api/read offline_access
  • @joy Wang - 我正在使用 MSAL 库,因此一旦身份验证成功,azure libraray 将返回带有 AccessToken 的回调。但没有收到refresh token

标签: android azure-ad-b2c android-studio-3.0 msal


【解决方案1】:

MSAL 不公开刷新令牌。使用网络跟踪,只要范围包含offline_access,您就会在响应中看到它,默认情况下,如果您提供与您的资源对应的范围。

【讨论】:

  • 所以一旦访问令牌过期,我就调用了mSingleAccountApp.acquireTokenSilentAsync(getScopes( ), maccount.authority, getAuthSilentCallback( )); ,所以在这个方法的回调中我收到一个错误messagecom.microsoft.identity.client.exception.MsalClientException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $,一旦访问令牌过期,我该如何管理`MSAL azure AD B2C`?
  • 基于 GitHub 问题,您的问题是错误的参数被传递到静默令牌方法中。导致在响应中发送 html 页面而不是 JSON 对象。详细说明您的代码是什么 MSAL 配置以及您传递给 acquireTokenSilent 的参数。网络跟踪也会有所帮助。
  • 如果token 未过期,mSingleAccountApp.acquireTokenSilentAsync(getScopes( ), maccount.authority, getAuthSilentCallback( )); 正在工作。但是如果access token 过期了,就会抛出上面提到的错误。
  • 范围值是-https://iocrg.onmicrosoft.com/ffcc-e64c-43b-aeed-bf7f196847/user.offline_access 权限值是https://ibpocrg.b2clogin.com/54a1-b7b-488-9e03-36a891c19/v2.0/。这些是调用acquireTokenSilentAsync 时传递的值。
  • 你的权限应该包含一个 b2c policyId。
猜你喜欢
  • 1970-01-01
  • 2020-03-17
  • 2021-08-17
  • 2019-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
  • 2021-06-01
相关资源
最近更新 更多