当前位置: 首页 > 知识库问答 >
问题:

如果存在多个AdTokenCacheStoreItems-Adalios,则从不使用刷新令牌

慕阳伯
2023-03-14

成功登录Microsoft Graph API服务后,将创建2AdTokenCacheStoreItems。其中一个包含accessToken(refreshToken为nil),另一个包含refreshToken(accessToken为nil)。

有2个缓存项是可以的,但这会导致刷新令牌逻辑失败。[尝试TouseCacheItem:]方法使用包含AccessToken的AdTokenCacheStoreItem。如果accessToken过期,它将检查刷新令牌。在此项中,刷新令牌为nil,因此整个过程失败,出现“尝试使用没有刷新令牌的项”错误。第二项(带有refresh令牌)实际上从未访问过。

因此,访问令牌永远不会被刷新。这里的问题似乎是什么?

共有1个答案

殳毅
2023-03-14

ADALiOS工作得很好,我不能复制这个问题。问题已经解决,详细信息在以下线程中:https://github.com/azuread/azure-activedirectory-library-for-objc/issues/598#issuecomment-211636229

在这里复制Ryan的回应,以防链接中断:

访问令牌与AdaliOS缓存中的多资源刷新令牌分开存储。如果调用acquireTokenSilent,它将从MRRT成功刷新AT。

“第二项(带有刷新令牌)实际上从未访问”行。是假的。查看-AttpTouseCacheItem:在ADAuthenticationContext(1.2.x)或ADAuthenticationRequest(2.1)中,您可以看到ADAL在哪里查找MRRT并尝试它。如果您很难找到“//try multi-resource refresh token if not currental tring it”注释。

在这个场景下有大量的单元测试,您也可以在测试应用程序中手动尝试。如果您没有使用正确的acquireToken入口点,则只能看到您声明的行为。

 类似资料:
  • 问题内容: 我有一个带有2个表的数据库,如下所示: 列是,并且是 和 在申请表中,我有2个编辑框,名称分别为和 如果用户像电子邮件一样插入一个新的负责人姓名, 那么在保存表格的过程中,我想将新的负责人姓名插入表中,请插入最后一个并将其更新为。 如果用户保持名称,但它更新电子邮件一样,然后我想在从1 =使用新的电子邮件地址和他们(其余和)保持不变。 如果负责人的名称相同,我想保留from表的原始引用

  • 问题内容: 我有一个钥匙型课。让我们称为map的实例。 我要添加{ ,}(是的一个实例,并且一)该地图。但是,如果键已经存在,我想求和该映射图中的当前值。 目前我使用 但是在Java 8中是否有一种时髦的方式来做到这一点,例如使用和? 遗憾的是我无法弄清楚。 谢谢。 问题答案: 这就是地图上的合并功能的作用。 这可以进一步减少到 它基本上等于

  • 当我试图在访问令牌过期之前使用刷新令牌生成访问令牌时,系统会生成一个新令牌,并且一切正常。但是如果访问令牌过期,则请求返回。 中的方法不是使用我从以前的访问令牌中存储在字典中的标识生成访问令牌吗? 如果上一个更新令牌尚未过期,如何阻止客户端使用相同的刷新令牌请求新的访问令牌? oauthProvider.cs: RefreshTokenProvider.cs: 对不起,英语不好,希望你能理解!

  • 我正在尝试从应用程序服务中获取Google的刷新令牌,但我不能。 日志说 2016-11-04T00:04:25 PID[500]收到的详细请求:获取https://noteappsvr.azurewebsites.net/.auth/login/google?access _ type = offline 2016-11-04t 00:04:25 PID[500]从https://account

  • 我想解析可能有也可能没有DTD的XML文档。如果有一个DTD,那么我想用它来展开实体引用。如果没有DTD(更严格地说,如果没有DOCTYPE声明),我只想忽略DTD处理。 当我设置时,分析包含实体引用的文档失败,因为实体被视为未声明的。 当我设置时,对没有DOCTYPE声明的文档的解析将失败,诊断结果相当模糊:

  • 我使用docusign身份验证流作为 登录时 让url=”https://account-d.docusign.com/oauth/auth?response_type=token 窗打开(url,“U self”);成功验证后,返回/token\u type/state中的access\u token/expires\u。 请指导如何refresh_token?refresh_token如何获得