Google OAuth 2授权 - 错误:重定向Uri不匹配

时间:2015-05-27 13:18:37

标签: google-api google-oauth

JSON文件

{"web":{"auth_uri":"https://accounts.google.com/o/oauth2/auth",
    "client_secret":"c-kaafSexciO7It3QcKxx3BO",
    "token_uri":"https://accounts.google.com/o/oauth2/token",
    "client_email":"xxx678964-tjkl572knihtgocll9tnadvsdngmnld6@developer.gserviceaccount.com",
    **"redirect_uris":["http://www.alfrosia.com"]**,


"client_x509_cert_url":"https://www.googleapis.com/robot/v1/metadata/x509/798911678964-tjkl572knihtgocll9tnadvsdngmnld6@developer.gserviceaccount.com",
        "client_id":"xxx1678964-tjkl572knihtgocll9tnadvsdngmnld6.apps.googleusercontent.com",    
"auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs",
        "javascript_origins":["[http://www.alfrosia.com][1]"]}}

我在上面的json文件中指定了正确的重定向url,但在身份验证期间,它在浏览器上提供了错误的url消息。虽然我在json文件中给出了this作为Redirect Uri。

在错误消息中说明

  

REDIRECT_URI = http://localhost:57826/authorize/

是uri_mismatch,而我没有在json中指定它

但Google OAuth2授权失败,在身份验证过程中会出现此错误消息

- Error: redirect_uri_mismatch.

请求详细信息

scope=https:[//www.googleapis.com/auth/youtube.readonly][3]
response_type=code
redirect_uri=http://localhost:57826/authorize/ 
access_type=offline
pageId=none
client_id=xxxxx964-tjkl572knihtgocll9tnadvsdngmnld6.apps.googleuserconten

2 个答案:

答案 0 :(得分:0)

redirect_uri必须与您在Google Developer console中设置的完全匹配。我的猜测是你的代码/客户端库/ IDE会根据你浏览的网址自动设置重定向URI。

例如,Visual Studio有一个随机改变端口的习惯。

选项1:

将您的重定向uri修复到Google开发者控制台

  

http://localhost:57826/authorize/

选项2:

假设您正在使用visual studio修复项目设置,因此它会停止添加随机端口。

选项3:

假设您正在使用可能正在添加此随机端口的java或Visual Studio IDE。创建Client ID for native application而不是Client ID for web application,并将其用于在本地主机上进行测试。不要将Client ID for native application发布到您的实时网络服务器。

答案 1 :(得分:0)

"本地主机"无法在Google开发者控制台中使用。

尝试将127.0.0.1作为重定向URI,并且不要在URI中使用符号。