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

通过Cognito使用用户名密码获取访问令牌遇阻

解决Cognito用户名密码授权(Password Grant)遇"unsupported_grant_type"问题

核心排查与解决步骤

1. 校验应用客户端授权配置

  • 登录Cognito用户池控制台,进入目标应用客户端的详情页,确认已开启ALLOW_PASSWORD_AUTH授权类型(对应OAuth2的Password Grant模式)
  • 若为公开客户端(如前端应用),确保未勾选"生成客户端密钥";若为后端机密客户端,需保留密钥,后续请求要携带客户端ID和密钥的Base64编码认证头

2. 修正Postman请求格式

请求地址固定为Cognito令牌端点:https://<你的用户池域名>/oauth2/token,请求方式为POST,需满足以下要求:

  • 请求头:必须设置Content-Type: application/x-www-form-urlencoded
  • 请求体(选择x-www-form-urlencoded格式):
    • grant_type: 严格设为password(小写,无拼写错误)
    • client_id: 你的应用客户端ID
    • username: 用户账号
    • password: 用户密码
    • scope: 资源服务器定义的完整Scope(格式为资源服务器标识符/Scope名称,例如my-api/user-read)
  • 机密客户端需额外添加请求头:Authorization: Basic <Base64编码的client_id:client_secret>

3. C#手动请求实现示例

using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Net.Http.Headers;
using System.Text;

public async Task<string> FetchCognitoToken()
{
    var httpClient = new HttpClient();
    var tokenEndpoint = "https://<你的用户池域名>/oauth2/token";

    var formData = new Dictionary<string, string>
    {
        {"grant_type", "password"},
        {"client_id", "你的应用客户端ID"},
        {"username", "用户账号"},
        {"password", "用户密码"},
        {"scope", "my-api/user-read"} // 替换为你的实际Scope
    };

    // 机密客户端需启用以下代码
    // var clientAuth = Convert.ToBase64String(Encoding.UTF8.GetBytes("客户端ID:客户端密钥"));
    // httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", clientAuth);

    var response = await httpClient.PostAsync(tokenEndpoint, new FormUrlEncodedContent(formData));
    response.EnsureSuccessStatusCode();
    return await response.Content.ReadAsStringAsync();
}

4. Scope权限校验

  • 确认资源服务器的Scope已关联到目标应用客户端
  • 请求的Scope必须是用户池控制台中已定义的、且应用客户端有权访问的范围,不能使用未配置的自定义值

剩余错误排查方向

若仍提示unsupported_grant_type,检查:

  • grant_type参数是否完全符合password的拼写和大小写要求
  • 请求的Content-Type是否未被错误设置为application/json
  • 应用客户端的授权类型列表中是否确实包含ALLOW_PASSWORD_AUTH

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 20:10:48