出于安全原因,我决定在我的 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);
}
有没有更好的解决方案来满足这个要求?这个用例有官方补丁吗?
谢谢