我已经使用公共托管的域名(不是localhost)设置了redirect_uri。 而且它对包括我在内的大多数人都有效,但对我堂兄却显示错误“ redirect_uri_mismatch”。
- 那是一个错误。
错误: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
了解更多请求详细信息
这就是我们所知道的。
由于我无法从自己的角度复制问题,
所有步骤均未解决问题。它显示了连续几次尝试的不一致行为。
还有什么其他原因会导致“ 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即可解决问题。
我可以知道这种自动附加行为的真正原因吗,这在我的浏览器中没有发生?
谢谢。
答案 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,并且现在可以正常使用了。