Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPyii2:GoogleOAuth2客户端库的不稳定行为_Php_Oauth 2.0_Yii2_Google Oauth - Fatal编程技术网

PHPyii2:GoogleOAuth2客户端库的不稳定行为

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。 奇怪的是,它一直工作得很好,直到昨天,然后突然

我们在使用PHP Yi2框架的应用程序中使用google作为OAuth2客户端。在准备授权请求时,在buildAuthUrl()方法(OAuth2.PHP)中正确配置了重定向uri,用户获得了预期的授权。现在,当我们尝试将代码交换为来自Google服务器的accessToken时,重定向uri会以某种方式附加如下范围=>。 当我们将此请求发送到google时,我们会收到一个HTTP 400错误消息redirect\u uri\u mismatch。 奇怪的是,它一直工作得很好,直到昨天,然后突然我们开始从谷歌收到上述错误(我们没有在谷歌开发控制台中更改我们项目中的URI,我们仔细检查了所有内容)。 是什么导致了这种突然的不匹配?任何帮助都将不胜感激。
谢谢

发生这种情况是因为“yii authclient”库的defautlReturnUrl()方法。“范围”没有从重定向uri中取消设置,因此Google抛出了HTTP 400错误请求错误。 这可以通过以下方法避免:

  • 在组件配置中显式设置returnUrl,其中指定client\u id、client\u secret等
  • 在defaultReturnUrl()中,取消设置['scope']以及'code'和'state'
    据我所知,GoogleOAuth不在本地系统上工作,而是在活动域上工作。而且你还没有在你的谷歌控制台和你的
    授权来源
    @MuhammadOmerAslam中提供
    重定向uri
    ,你也可以让它为你的本地主机工作,这不是问题所在。我们需要在google开发控制台中使用重定向uri。问题在于
    fetchAccessToken()
    方法中,库正在配置的uri不正确,这导致了错误。可能是您正在使用有效域作为本地域。据google所知,
    local.com
    不是本地的,
    cms.local.com
    在DNS服务器上无法解析。@Jørgen如我所述,问题不在本地域,对我来说很好。问题是附加到重定向uri的作用域导致了Google服务器抛出的不匹配。就我所能调试的而言,我发现yii2authclient库中似乎存在一些问题。