AWS Amplify v6配置Google OAuth遇OAuthNotConfigureException错误求助
解决AWS Amplify v6中
OAuthNotConfigureException错误(Google OAuth对接) 问题根源
Amplify v6对OAuth配置结构做了重大调整,你当前将oauth配置放在根节点的写法是v5格式,v6要求OAuth配置必须嵌套在Auth.Cognito内部,且需配合正确的providerConfigs格式。
修正后的配置
将amplify.ts配置修改为以下结构:
// src/config/amplify.ts import { Amplify } from 'aws-amplify'; const amplifyConfig = { Auth: { Cognito: { userPoolId: "userPoolId", userPoolClientId: "userPoolClientId", signUpVerificationMethod: "code", loginWith: { email: true, phone: false, username: false }, userAttributes: { email: { required: true }, name: { required: true } }, // v6中OAuth配置必须放在此处 oauth: { domain: "your-cognito-domain.auth.region.amazoncognito.com", scope: ["email", "openid", "profile"], redirectSignIn: "http://localhost:3000/signin", redirectSignOut: "http://localhost:3000/", responseType: "code", // 配置第三方提供商详情 providerConfigs: { google: { clientId: "your-google-oauth-client-id", scopes: ["email", "profile"] } } } } } }; Amplify.configure(amplifyConfig);
关键调整说明
- 移除根节点
oauth字段:v6不再支持根节点的OAuth配置,必须移入Auth.Cognito - 用
providerConfigs替代socialProviders:v6通过providerConfigs定义第三方OAuth提供商的clientId和权限范围 - 统一域名格式:确保
oauth.domain是完整的Cognito用户池域名(例如xxx.auth.us-east-1.amazoncognito.com)
验证步骤
- 确认Cognito用户池客户端的回调URL和退出URL与配置中的
redirectSignIn、redirectSignOut完全一致 - 检查Google OAuth凭证中的授权重定向URI是否设置为
https://<your-cognito-domain>/oauth2/idpresponse - 确保Amplify配置在应用初始化时执行(比如在Next.js的
layout.tsx或_app.tsx中导入配置文件)
无需降级到v5
v6的OAuth配置逻辑虽与v5不同,但按上述结构调整后即可正常实现Google OAuth登录,无需回退到v5版本。
内容的提问来源于stack exchange,提问作者jaramator
相关产品推荐
相关产品推荐

