我正在使用 Socialite
通过 Facebook 验证我的用户。但是,我无法让它工作。我关注了this教程,但出现以下错误:
我到处看了看,什么都试过了,但我无法让它工作。这是我的代码:
在 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 中有这些设置:
出了什么问题?据我所知,我遵循了所有必要的步骤。我不明白这里出了什么问题。我希望我提供了所有必要的信息!
编辑
错误显示页面上的 url 如下所示:
http://localhost:8000/auth/facebook/callback?code=AQBtnKEqZgImLqN7f3hETe9GptgzFH71sXrV5qmv8Rpo6Oj5-4rl8mBjFPbfkBtiV8w9atV7X4OrWfHyalJkXU-k6lkEv1bly6v5Qxm2es-_RRp8gfoSWOZwjqE34Rvq6__L3aEOERPEa9LSBk_rKVP_cYGZoQeAydRLQUZVGdr_p1SuE1hRZIvZTAZ-zorkPoyyCDNZtDEVFHGRJt_c3kTf_AKE97FVemrXrUDzxaX-rvovKtfGF3u4CvAIt5pe4g7zD30jAWF78ZgjjPpr21MdaGwP5V0tc8g84oz0dR5Nbit7sKeUE-XblWFrQCIKfqs-OJ6rcuzw7iPTx6xrQ9Ev&state=4f924a9974207482c6fce24c1d74705c6688adc0#_=_
我还尝试了隐身模式、删除 cookie 等。同样的结果...
最佳答案
我不想弄乱访问 token 或其他 API,因为我认为这不能解决我的问题。但是现在(我不知道过了多久......)我开始工作了!对于也有此问题的人;我执行了以下步骤,但不幸的是它成功了:
- 我从 composer.json 中删除了 socialite 并更新了它。
- 我重新安装了社交名媛。我在 composer.json 中添加了以下行:
"laravel/socialite": "2.*"
。 - 然后,当我运行代码片段时,出现以下错误:
ErrorException in FacebookProvider.php line 89:Undefined index: first_name
。 - 之后,我替换了
FacebookProvider.php
中的代码 with this file from github .
不要忘记每次都随机执行 composer dump-autoload
,因为有时随机似乎也有帮助。
现在不管出于什么原因,它终于可以工作了!
编辑
我还注意到 composer update
做得很好。如果这不起作用,请将 socialite 更新到最新版本。这最终解决了我最近遇到的另一个问题。
关于php - Laravel 社交名媛错误 : "An active access token must be used to query information about the current user.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41041565/