PHPyii2:GoogleOAuth2客户端库的不稳定行为
我们在使用PHP Yi2框架的应用程序中使用google作为OAuth2客户端。在准备授权请求时,在buildAuthUrl()方法(OAuth2.PHP)中正确配置了重定向uri,用户获得了预期的授权。现在,当我们尝试将代码交换为来自Google服务器的accessToken时,重定向uri会以某种方式附加如下范围=>。 当我们将此请求发送到google时,我们会收到一个HTTP 400错误消息redirect\u uri\u mismatch。 奇怪的是,它一直工作得很好,直到昨天,然后突然我们开始从谷歌收到上述错误(我们没有在谷歌开发控制台中更改我们项目中的URI,我们仔细检查了所有内容)。 是什么导致了这种突然的不匹配?任何帮助都将不胜感激。PHPyii2:GoogleOAuth2客户端库的不稳定行为,php,oauth-2.0,yii2,google-oauth,Php,Oauth 2.0,Yii2,Google Oauth,我们在使用PHP Yi2框架的应用程序中使用google作为OAuth2客户端。在准备授权请求时,在buildAuthUrl()方法(OAuth2.PHP)中正确配置了重定向uri,用户获得了预期的授权。现在,当我们尝试将代码交换为来自Google服务器的accessToken时,重定向uri会以某种方式附加如下范围=>。 当我们将此请求发送到google时,我们会收到一个HTTP 400错误消息redirect\u uri\u mismatch。 奇怪的是,它一直工作得很好,直到昨天,然后突然
谢谢发生这种情况是因为“yii authclient”库的defautlReturnUrl()方法。“范围”没有从重定向uri中取消设置,因此Google抛出了HTTP 400错误请求错误。 这可以通过以下方法避免:
据我所知,GoogleOAuth不在本地系统上工作,而是在活动域上工作。而且你还没有在你的谷歌控制台和你的
授权来源
@MuhammadOmerAslam中提供重定向uri
,你也可以让它为你的本地主机工作,这不是问题所在。我们需要在google开发控制台中使用重定向uri。问题在于fetchAccessToken()
方法中,库正在配置的uri不正确,这导致了错误。可能是您正在使用有效域作为本地域。据google所知,local.com
不是本地的,cms.local.com
在DNS服务器上无法解析。@Jørgen如我所述,问题不在本地域,对我来说很好。问题是附加到重定向uri的作用域导致了Google服务器抛出的不匹配。就我所能调试的而言,我发现yii2authclient库中似乎存在一些问题。