谷歌/ Facebook oauth在开发中工作但不在prod

时间:2017-03-31 11:20:24

标签: php facebook oauth yii2 google-oauth

我在我的网站上实施了google和facebook oauth。一切都很好,然后昨天我注意到它不再起作用了。我没有更改谷歌和Facebook控制台中的任何内容,我不记得最近更改与此相关的代码。 google和facebook都会返回相同的错误。

我已经在我的localhost上测试了Google oauth,但它可以正常运行,但尚未投入生产。

出现google登录窗口,我可以正确登录,但是当Google重定向到我的网站时,我的代码崩溃了。

我注意到变量$ http_response_header在dev中有14个头但在prod中是空的。它似乎是问题的根源,但我不知道为什么以及如何调试它。

我正在使用Yii2框架,崩溃的代码是框架的一部分。

请参阅下面的调用堆栈(它没有完成)。

   TypeError

   Argument 2 passed to yii\httpclient\Client::createResponse() must be of 
   the type array, null given, called in /home/folder/vendor/yiisoft/yii2-
   httpclient/StreamTransport.php on line 73
   1. in /home/folder/vendor/yiisoft/yii2-httpclient/Client.php at line 
   200
       return Yii::createObject($config);
    }

    /**
     * Creates a response instance.
     * @param string $content raw content
     * @param array $headers headers list.
     * @return Response request instance.
     */
    public function createResponse($content = null, array $headers = [])
    {
        $config = $this->responseConfig;
        if (!isset($config['class'])) {
            $config['class'] = Response::className();
        }
        $config['client'] = $this;
        $response = Yii::createObject($config);
        $response->setContent($content);
        $response->setHeaders($headers);
    2. in /home/folder/vendor/yiisoft/yii2-httpclient/StreamTransport.php 
    at line 73 – yii\httpclient\Client::createResponse(false, null)
       Yii::endProfile($token, __METHOD__);
            throw new Exception($e->getMessage(), $e->getCode(), $e);
        }

        Yii::endProfile($token, __METHOD__);

      $response = $request->client->createResponse($responseContent, 
    $responseHeaders);

        $request->afterSend($response);

        return $response;
    }

有人可以帮助我,我不知道从哪里开始,我不知道如何调试。

感谢。

1 个答案:

答案 0 :(得分:0)

我没有得到-1但无论如何我发现了问题。

php变量" allow_url_fopen"设置已禁用,必须激活。我没有改变它,主机上发生了一些事情。