1

出于安全原因,我决定在我的 Facebook 应用程序上启用“要求应用程序机密”。然后我发现 Laravel Socialite 版本 " ^2.0" 无法正常工作,因为它没有getUserByToken在类 " Laravel\Socialite\Two\FacebookProvider" 的方法 " " 上发送 appsecret_proof。

我决定做一个快速修复:

/**
 * {@inheritdoc}
 */
protected function getUserByToken($token)
{
    $appsecret_proof= hash_hmac('sha256', $token, $this->clientSecret);//THIS IS MY QUICK FIX
    $response = $this->getHttpClient()->get($this->graphUrl.'/'.$this->version.'/me?access_token='.$token.'&appsecret_proof='.$appsecret_proof.'&fields='.implode(',', $this->fields), [
        'headers' => [
              'Accept' => 'application/json',
         ],
     ]);

     return json_decode($response->getBody(), true);
}

有没有更好的解决方案来满足这个要求?这个用例有官方补丁吗?

谢谢

4

1 回答 1

0

现在这个问题解决了。我发送了一个拉取请求:https ://github.com/laravel/socialite/pull/100

此拉取请求已合并,并包含在版本 v2.0.12 中

于 2015-09-01T00:53:12.633 回答