【问题标题】:storing AuthorizationCodeCredential in web app session在 Web 应用会话中存储 AuthorizationCodeCredential
【发布时间】:2021-10-31 22:16:26
【问题描述】:

我正在使用azure-identity 库对用户进行身份验证,以便在我的 Spring Boot Web 应用程序中访问 Microsoft Graph API。

在通过身份验证代码授权重定向成功获取code 后,我想将访问令牌和刷新令牌存储在 Web 应用程序会话中,这样用户就不必重新进行身份验证以向Microsoft Graph API。

如何获取令牌以将它们存储在会话中?

【问题讨论】:

    标签: spring-boot microsoft-graph-api azure-identity


    【解决方案1】:

    授权代码是用于获取实际访问令牌的单用户代码。您需要按照Microsoft identity platform and OAuth 2.0 authorization code flow 中的说明将code 兑换成access_token

    包含access_token 的响应正文还将包含refresh_token 值:

    {
        "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...",
        "token_type": "Bearer",
        "expires_in": 3599,
        "scope": "https%3A%2F%2Fgraph.microsoft.com%2Fmail.read",
        "refresh_token": "AwABAAAAvPM1KaPlrEqdFSBzjqfTGAMxZGUTdM0t4B4...",
        "id_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOiIyZDRkMTFhMi1mODE0LTQ2YTctOD...",
    }
    

    【讨论】:

      【解决方案2】:

      执行此操作的方法是创建一个实现 OAuth2AuthorizedClientService 的类,该类在数据库中存储和加载 OAuth 凭据。

      【讨论】:

        猜你喜欢
        • 2019-05-08
        • 2014-09-18
        • 2017-01-09
        • 2013-10-26
        • 2015-03-12
        • 1970-01-01
        • 2011-07-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多