使用Next Auth对接Zitadel Cloud时遭遇301 Moved Permanently错误
NextAuth集成Zitadel时出现SIGNIN_OAUTH_ERROR(301 Moved Permanently)的解决方法
问题原因
这个错误的核心是OpenID Connect issuer地址末尾的斜杠导致重定向问题。你的ZITADEL_ISSUER配置末尾带了/,当NextAuth调用OpenID发现端点时,会拼接出错误的URL(比如https://myinstance-qz4usg.zitadel.cloud//.well-known/openid-configuration),Zitadel服务器会返回301重定向到正确的无斜杠地址,但openid-client库在issuer发现阶段默认不自动跟随重定向,因此抛出"expected 200 OK, got: 301 Moved Permanently"错误。
解决步骤
- 修改.env文件中的ZITADEL_ISSUER配置,去掉末尾的斜杠:
ZITADEL_ISSUER=https://myinstance-qz4usg.zitadel.cloud
- 重启你的Next.js开发服务器,确保新的环境变量生效。
额外验证点
如果修改后仍然报错,可以检查以下内容:
- 确认
ZITADEL_CLIENT_ID格式正确(应为[client-id]@[project-id]) - 确认
ZITADEL_CLIENT_SECRET与Zitadel控制台中生成的一致 - 确认Zitadel控制台中已将
http://localhost:3000/api/auth/callback/zitadel添加为有效回调URL
内容的提问来源于stack exchange,提问作者sdoxsee
相关产品推荐
相关产品推荐

