2016-06-07 165 views
0

我正在尝试使用谷歌日历API对运行在AWS EC2上的Web服务器进行身份验证。Google Oauth错误:redirect_uri_mismatch

当我生成凭证时,我选择了“OAuth客户端ID”,然后选择了“Web应用程序”。对于我输入的授权重定向URI:

http://ec2-XX-XX-XX-XXX.eu-west-1.compute.amazonaws.com (我已经删去了我的EC2实例的IP地址)。我检查了这是我想要回调的正确URL。

是在服务器日志中生成的链接的格式为:

https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=XXXXXXXXXXXX-XXXXXXXXXXXXXX.apps.googleusercontent.com&redirect_uri=http://localhost:47258/Callback&response_type=code&scope=https://www.googleapis.com/auth/calendar.readonly

当我跟随链接出现错误 “错误:redirect_uri_mismatch”。

我读过this SO question,并检查了我使用HTTP和没有试运行“/”

我怀疑生成的URL不应该的“localhost”的,但我已经复位client_secret .json几次,每次我用新的客户端密码重新启动tomcat时,我仍然会获得与localhost的链接,但只是通过不同的端口。

在本地,我之前选择了“其他”的凭证类型,没有给出授权重定向URI的选项。我确实为EC2实例尝试了这一点,但是这不会让我通过重定向URI获得控制权,并通过本地主机发送重定向。

回答

1

当请求提供的uri(包括端口)与应用程序注册的URI不匹配时,Google会抛出redirect_uri_mismatch

确保您在Web控制台上正确注册了Authorised redirect URIsAuthorised JavaScript origins

这是一个适用于我的示例配置。 enter image description here

+0

谢谢,问题是端口号 – Fraser

0

创建宣誓客户端ID时,请勿选择Web应用程序,请选择“其他”。这样,重定向URI不是必需的。

相关问题