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

使用Google身份提供商登录SPA时,Cognito提示缺少client_id参数

解决Cognito+Google登录时"Missing required parameter client_id"错误

核心问题分析

你遇到的Missing required parameter client_id错误,本质是Cognito在接收Google的OAuth回调时,无法识别该请求对应的用户池客户端,导致参数校验失败。以下是针对性的修复步骤:

修复步骤

1. 修正Google Cloud的OAuth重定向URI配置

你之前仅添加用户池域名到Google的重定向URI列表,这是错误的。必须添加完整的Cognito回调路径:

  • 格式:https://{MY_COGNITO_DOMAIN}/oauth2/idpresponse
  • 操作路径:Google Cloud控制台 → API与服务 → 凭据 → 你的OAuth 2.0 Client ID → 授权重定向URI → 添加上述完整路径

2. 完善Amplify的OAuth配置

Amplify v6的OAuth配置需要明确指定clientId,否则初始授权请求可能无法携带正确参数。修改你的配置:

Amplify.configure({
  Auth: {
    Cognito: {
      loginWith: {
        oauth: {
          domain: '{MY_COGNITO_DOMAIN}',
          clientId: '{MY_USER_POOL_CLIENT_ID}', // 新增这行,与顶层userPoolClientId一致
          redirectSignIn: ['http://localhost:5173/'],
          redirectSignOut: ['http://localhost:5173/'], // 建议补充登出回调
          responseType: 'code',
          scopes: ['email', 'openid']
        }
      },
      userPoolClientId: '{MY_USER_POOL_CLIENT_ID}',
      userPoolId: '{MY_USER_POOL_ID}'
    }  
  }
});

3. 检查Cognito用户池客户端的OAuth设置

登录AWS控制台 → Cognito → 你的用户池 → 应用客户端 → 对应客户端的"编辑":

  • 确保"启用OAuth"已勾选
  • 授权流选择授权码流(匹配你设置的responseType: 'code')
  • 回调URL和登出URL包含http://localhost:5173/,注意路径末尾的斜杠要与Amplify配置一致
  • 授权范围勾选email、openid(与Amplify的scopes匹配)

验证方法

修改配置后重启Vue应用,触发登录流程:

  1. 打开浏览器开发者工具的网络面板,查看第一个请求/oauth2/authorize,确认参数中包含client_id
  2. 完成Google登录后,检查回调到/oauth2/idpresponse的请求,确认Cognito不再返回400错误,而是正常跳转到你的本地应用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 08:15:20