启用Facebook App“需要应用程序密钥”设置时,Laravel Socialite不起作用

时间:2015-08-28 07:19:53

标签: laravel-socialite

出于安全考虑,我决定在我的Facebook App上启用“Require App Secret”。然后我发现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);
}

这个要求有更好的解决方案吗?这个用例是否有官方补丁?

由于

1 个答案:

答案 0 :(得分:0)

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

此拉取请求已合并,并且已包含在发布v2.0.12