簡體   English   中英

Laravel Socialite錯誤:“必須使用活動訪問令牌來查詢有關當前用戶的信息。”

[英]Laravel Socialite error: “An active access token must be used to query information about the current user.”

我正在使用Socialite通過Facebook驗證我的用戶。 但是,我無法讓它發揮作用。 我按照教程,但收到以下錯誤:

在此輸入圖像描述

我到處尋找並嘗試過任何事情,但我無法讓它發揮作用。 這是我的代碼:

在services.php中:

'facebook' => [
    'client_id' => '[My App ID]',
    'client_secret' => '[My App Secret]',
    'redirect' => 'http://localhost:8000/auth/facebook/callback/',
],

我的路線:

Route::group(['middleware' => ['web', 'requestlog']], function () {   
    Route::get('auth/facebook', 'Auth\AuthController@redirectToProvider');
    Route::get('auth/facebook/callback/', 'Auth\AuthController@handleProviderCallback');
});

然后在我的AuthController中:

use Laravel\Socialite\Facades\Socialite;

public function redirectToProvider()
{
    return Socialite::driver('facebook')->redirect();
}

public function handleProviderCallback()
{
    try {

        $providerUser = Socialite::driver('facebook')->user();
        dd('yay it worked!');

      } catch (RequestException $e) {

      dd($e->getResponse()->json());

    }
}

然后我在FB中有這些設置:

在此輸入圖像描述

在此輸入圖像描述

出了什么問題? 據我所知,我遵循了所有必要的步驟。 我不明白這里有什么問題。 我希望我提供了所有必要的信息!

編輯

這里的網址是什么樣子的網頁,其中顯示錯誤: http://localhost:8000/auth/facebook/callback?code=AQBtnKEqZgImLqN7f3hETe9GptgzFH71sXrV5qmv8Rpo6Oj5-4rl8mBjFPbfkBtiV8w9atV7X4OrWfHyalJkXU-k6lkEv1bly6v5Qxm2es-_RRp8gfoSWOZwjqE34Rvq6__L3aEOERPEa9LSBk_rKVP_cYGZoQeAydRLQUZVGdr_p1SuE1hRZIvZTAZ-zorkPoyyCDNZtDEVFHGRJt_c3kTf_AKE97FVemrXrUDzxaX-rvovKtfGF3u4CvAIt5pe4g7zD30jAWF78ZgjjPpr21MdaGwP5V0tc8g84oz0dR5Nbit7sKeUE-XblWFrQCIKfqs-OJ6rcuzw7iPTx6xrQ9Ev&state=4f924a9974207482c6fce24c1d74705c6688adc0#_=_

我也嘗試過隱身模式,刪除cookie等等。 結果相同......

我不想搞亂訪問令牌或其他API,因為我認為這不會解決我的問題。 但是現在(在我不知道多久之后......)我開始工作了! 對於有這個問題的人; 我做了以下步驟,運氣不好使它工作:

  1. 我從composer.json中刪除了socialite並更新了它。
  2. 我重新安裝了名媛。 我在composer.json中添加了以下行: "laravel/socialite": "2.*"
  3. 然后,當我運行該片段時,我收到以下錯誤: ErrorException in FacebookProvider.php line 89:Undefined index: first_name
  4. 之后我用github中的這個文件替換了FacebookProvider.php的代碼。

不要忘記每次都執行隨機的composer dump-autoload因為有時隨機似乎也有幫助。

現在它最終無論如何都有效!

編輯

我還注意到composer update做得很好。 如果不起作用,請將socialite更新為最新版本。 這最終解決了我最近遇到的另一個問題。

運行composer update然后composer dump-autoload為我解決了這個問題。

我注意到Laravel Socialite已經更新,所以@Markinson是對的

您提到的錯誤是access_token無效。 您需要生成永久訪問令牌才能使此功能正常運行。

這是您可以關注的鏈接。 Facebook:永久頁面訪問令牌? )我認為你應該使用直接的Http圖api調用來使這個工作。

對我而言,它與composer require laravel/socialite:2.0.21 ...從2.0.20升級

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM