1

セキュリティ上の理由から、Facebook アプリで「Require App Secret」を有効にすることにしました。その後、クラス " " の^2.0メソッド " " で appsecret_proof を送信していないため、Laravel Socialite バージョン " " が機能していないことがわかりました。getUserByTokenLaravel\Socialite\Two\FacebookProvider

私は簡単な修正を行うことにしました:

/**
 * {@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 に答える