错误“ redirect_uri_mismatch”,并自动附加“ www”-Google OAuth2

时间:2018-12-12 03:16:19

标签: php google-chrome firefox oauth-2.0 google-oauth2

我已经使用公共托管的域名(不是localhost)设置了redirect_uri。 而且它对包括我在内的大多数人都有效,但对我堂兄却显示错误“ redirect_uri_mismatch”。

  
      
  1. 那是一个错误。
  2.   
     

错误:redirect_uri_mismatch

     

请求中的重定向URI,   http://www.domainname.com/src/oauth2callback.php,不   与为OAuth客户端授权的匹配。要更新   授权的重定向URI,请访问:   https://console.developers.google.com/apis/credentials/oauthclient/123456-9nq218mchl4n9dj474v0821g7umko6fp.apps.googleusercontent.com?project=123456

     

了解更多请求详细信息

     

这就是我们所知道的。

由于我无法从自己的角度复制问题,

  1. 我要求他从“所有时间”清除缓存。
  2. 重新启动系统并以隐身模式打开浏览器的单个会话,然后尝试登录。
  3. 尝试使用不同的设备,例如使用具有不同ISP的电话。

所有步骤均未解决问题。它显示了连续几次尝试的不一致行为。

还有什么其他原因会导致“ redirect_uri_mismatch”错误? 这是我的代码还是来自Google的问题。我正在为此应用程序使用“ php”。

谢谢。

更新:了解错误原因

我已经建立了这样的重定向URL。

$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/src/oauth2callback.php');

并且已将重定向URL注册为

http://domainname.com/src/oauth2callback.php

但是当我的表弟单击“登录”按钮时,已建立了重定向URL,并在域名之前附加了“ www” ,例如, http://www.domainname.com/src/oauth2callback.php

他正在使用63.0版本的Firefox。更新Firefox后,它是64.0,与我的相同。即使重定向URL附加了“ www”。 但是,添加另一个带有“ www” 作为http://www.domainname.com/src/oauth2callback.php的URL即可解决问题。

我可以知道这种自动附加行为的真正原因吗,这在我的浏览器中没有发生?

谢谢。

1 个答案:

答案 0 :(得分:0)

找到原因。 相同的代码

$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/src/oauth2callback.php');

在我堂兄的域名前附加了“ www”

http://www.domainname.com/src/oauth2callback.php

对我来说,没有添加“ www”。

http://domainname.com/src/oauth2callback.php

并且重定向URL已注册,没有“ www”。现在,我同时注册了带有和不带有“ www”的两个URL,并且现在可以正常使用了。