使用NextAuth集成Google登录时遇redirect_uri_mismatch错误求助
解决NextAuth Google登录redirect_uri_mismatch问题
你遇到的Google OAuth 400错误(redirect_uri不匹配),虽然已添加对应URI但提示重复,可以试试以下排查和解决方法:
严格校验URI一致性:确保Google Cloud Console里的重定向URI和请求中的
https://poempt.vercel.app/api/auth/callback/google完全一致,重点检查:- 协议是
https而非http - 域名、路径无大小写错误(比如
Poempt和poempt会被视为不同URI) - 末尾没有多余斜杠(
...google/和...google是两个不同的地址)
- 协议是
确认客户端ID匹配:如果在Google Cloud中创建了多个OAuth客户端(比如测试版、生产版),要确保是给Web应用类型的客户端添加的URI,且当前NextAuth配置使用的就是该客户端的ID和密钥,不要选错客户端类型或混淆测试/生产密钥。
重新添加URI并等待生效:控制台可能存在缓存延迟,可先删除已有的该URI,点击保存;等待1-2分钟后重新添加并保存,之后重启Vercel部署或清除应用缓存再测试。
检查NextAuth环境变量:生产环境必须正确设置
NEXTAUTH_URL为https://poempt.vercel.app,NextAuth会根据这个变量生成重定向URI,若变量错误,生成的地址就会和控制台配置不匹配。同时确认GOOGLE_CLIENT_ID和GOOGLE_CLIENT_SECRET用的是生产环境密钥,而非测试环境的。同步Vercel部署配置:如果是Vercel部署,修改环境变量后需重新部署,确保新配置同步到生产环境中。
你的登录代码片段没有问题,问题大概率出在OAuth配置或环境变量上:
import { signIn, useSession } from 'next-auth/react'; const logIn = (provider: string, email = undefined) => { email ? signIn(provider, {}, email) : signIn(provider, {}); }; <GoogleLoginButton style={style} onClick={() => { logIn('google'); }} > <span>Sign in with Google</span> </GoogleLoginButton>
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

