出于安全考虑,我决定在我的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);
}
这个要求有更好的解决方案吗?这个用例是否有官方补丁?
由于
答案 0 :(得分:0)
现在这已经解决了。 我发送了拉取请求:https://github.com/laravel/socialite/pull/100
此拉取请求已合并,并且已包含在发布v2.0.12
中