2015-08-28 18 views
1

出于安全原因,我决定在我的Facebook应用上启用“需要应用秘密”。然后我发现Laravel Socialite版本“^2.0”没有工作,因为它没有发送类“Laravel\Socialite\Two\FacebookProvider”的方法“getUserByToken”的appsecret_proof。当Facebook应用“需要应用秘密”设置启用时,Laravel Socialite不起作用

我决定速战速决:

/** 
* {@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); 
} 

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

谢谢

回答

相关问题