首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ADAL到MSAL迁移过程中从MSAL获取刷新令牌

在ADAL到MSAL迁移过程中从MSAL获取刷新令牌
EN

Stack Overflow用户
提问于 2022-02-28 00:13:07
回答 1查看 133关注 0票数 0

我们正在从ADAL4J迁移到MSAL4J。在ADAL中,我们将刷新令牌存储在数据库中,并在不同的微服务之间共享,以进行令牌交换。使用MSAL,刷新令牌不易访问。我们构建代码的方式很难摆脱“刷新令牌”的使用。因此,我们正在寻找一种在MSAL中获取刷新令牌的解决方案。

目前,我们有一些建议(scala中有代码示例):

选项1.将包作用域类msal.AuthenticationResult转换为自定义的结果类

助手类在com.microsoft.aad.msal4j下定义

代码语言:javascript
复制
package com.microsoft.aad.msal4j

trait AADTokenExchangeHelper(...) {
    def acquireToken(...) = {
      val result = app.acquireToken(requestParams).get.asInstanceOf[AuthenticationResult]
      // store result.getRefreshToken
    }
}

选项2.解析TokenCache并获取刷新令牌

代码语言:javascript
复制
val tokenCache: String = app.tokenCache().serialize()
val tokensMap = ObjectMapper.fromJson[String, Map[String, Any]](tokenCache)
val refreshTokensMeta = tokensMap("RefreshToken")
 .asInstanceOf[Map[String, Map[String, String]]]
 .values
 .toSeq
// may filter by client_id
val refreshTokens = refreshTokensMeta.map(m => m("secret"))

选项3.自定义TokenCache

我这里没有详细的细节。我们似乎需要解析缓存字符串,如选项2所示。

这些选择是否可以接受?如有任何建议,敬请谅解!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-06 23:24:42

查看文章中列出的解决方案,我相信从令牌缓存(选项2)中检索令牌是最好的方法。只需确保在使用之前检查令牌的过期日期。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71289455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档