You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS Cognito授权码获取access及refresh token?.NET SDK方案问询

AWS .NET SDK 授权码换令牌实现方案

AWS .NET SDK 存在对应封装方法,无需手动调用令牌端点的HTTP接口,具体实现如下:

  • 原生AWSSDK.CognitoIdentityProvider包已内置对应能力,你可以直接调用AmazonCognitoIdentityProviderClient类的InitiateAuthAsync方法,指定授权码流即可完成access token、refresh token的获取。

示例代码:

using Amazon.CognitoIdentityProvider;
using Amazon.CognitoIdentityProvider.Model;

// 初始化Cognito客户端,权限配置和其他AWS SDK客户端一致
var cognitoClient = new AmazonCognitoIdentityProviderClient();

var authRequest = new InitiateAuthRequest
{
    // 指定授权码认证流
    AuthFlow = AuthFlowType.AUTHORIZATION_CODE_GRANT,
    ClientId = "你的Cognito客户端ID",
    AuthParameters = new Dictionary<string, string>
    {
        { "code", "你从Facebook获取的授权码" },
        { "redirect_uri", "你配置的授权回调地址,必须和申请授权码时传入的完全一致" }
        // 如果客户端配置了密钥,需额外添加以下参数
        // { "client_secret", "你的Cognito客户端密钥" }
    }
};

var response = await cognitoClient.InitiateAuthAsync(authRequest);
// 令牌信息存储在response.AuthenticationResult中
// 包含AccessToken、IdToken、RefreshToken、ExpiresIn等字段
  • 如果你需要更简化的封装,可以安装官方扩展NuGet包Amazon.Extensions.CognitoAuthentication,该包封装了常用的认证流逻辑,无需手动构造参数字典。

注意:回调地址redirect_uri的校验非常严格,大小写、末尾斜杠、查询参数任意一处和申请授权码时的取值不一致都会请求失败。


内容的提问来源于stack exchange,提问作者user16857875

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:06:03