Ari_Yin
(ARI YIN)
1
我通过ngrok使本地部署的n8n可以外部访问。
telegram node可以正常使用。
但是我在添加Google系列的node时,无法验证credential。
sign in Google的页面内容显示如下:
Access blocked: This app’s request is invalid
You can’t sign in because this app sent an invalid request. You can try again later, or contact the developer about this issue.
If you are a developer of this app, see error details.
Error 400: redirect_uri_mismatch
想请问这个应该如何解决?
搜索
找到 '#n8n Google credential redirect_uri_mismatch ngrok tags:n8n' 的 1 个结果
看起来你使用 ngrok 将本地 n8n 实例暴露给外部访问,但在配置 Google 相关的 Credentials 时遇到了 redirect_uri_mismatch
错误。
根据我搜索到的信息,这个问题通常是由于 Google OAuth 客户端配置中的重定向 URI 与 n8n 尝试使用的 URI 不匹配造成的。
可能的原因和解决方案:
-
ngrok URL 不稳定: 每次 ngrok 启动时,它可能会分配一个新的 URL。你需要确保在 Google Cloud Console 中配置的 OAuth 客户端的重定向 URI 与当前的 ngrok URL 完全匹配。
-
n8n 配置中的回调 URL: 检查 n8n 的配置,确认它正在使用正确的外部访问 URL 作为回调 URL。你可能需要在 n8n 的环境变量或配置文件中设置 WEBHOOK_URL
或类似的参数。
-
Google OAuth 客户端配置: 仔细检查 Google Cloud Console 中 OAuth 客户端的配置。确保已将 ngrok 提供的 URL 添加到授权的重定向 URI 列表中。注意,如果你的 n8n 实例运行在子路径下(例如 https://your-ngrok-url.com/n8n
),你需要将完整的子路径 URL 添加到重定向 URI 列表中。
建议步骤:
- 确认当前的 ngrok URL。
- 检查 n8n 的
WEBHOOK_URL
配置。
- 更新 Google Cloud Console 中 OAuth 客户端的重定向 URI,确保它与当前的 ngrok URL 和 n8n 的
WEBHOOK_URL
匹配。
由于你是通过 ngrok 暴露本地 n8n 实例,每次 ngrok 重启,redirect_uri
都会变化,这在生产环境中显然是不可接受的。所以,最终还是建议使用具有固定域名的服务器来部署 n8n。
希望这些信息能帮到你!
pls
(评论尸)
4
你是不是没有把 ngrok 的公网地址写进环境变量的 WEBHOOK_URL 里?
Ari_Yin
(ARI YIN)
5
我配置好了,我发现问题所在了。
我之前在GCP上创建Oauth的应用类型时选择的是desktop,如果选择web application的话,会有一个选项Authorized redirect URIs
。
把https://你的域名/rest/oauth2-credential/callback
添加进去就OK了。