Mar*_*son 10 php facebook facebook-php-sdk laravel laravel-5.2
我Socialite用来通过Facebook验证我的用户.但是,我无法让它发挥作用.我按照本教程,但收到以下错误:
我到处寻找并尝试过任何事情,但我无法让它发挥作用.这是我的代码:
在services.php中:
'facebook' => [
'client_id' => '[My App ID]',
'client_secret' => '[My App Secret]',
'redirect' => 'http://localhost:8000/auth/facebook/callback/',
],
Run Code Online (Sandbox Code Playgroud)
我的路线:
Route::group(['middleware' => ['web', 'requestlog']], function () {
Route::get('auth/facebook', 'Auth\AuthController@redirectToProvider');
Route::get('auth/facebook/callback/', 'Auth\AuthController@handleProviderCallback');
});
Run Code Online (Sandbox Code Playgroud)
然后在我的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());
}
}
Run Code Online (Sandbox Code Playgroud)
然后我在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等等.结果相同......
Mar*_*son 10
我不想搞乱访问令牌或其他API,因为我认为这不会解决我的问题.但是现在(在我不知道多久之后......)我开始工作了!对于有这个问题的人; 我做了以下步骤,运气不好使它工作:
"laravel/socialite": "2.*".ErrorException in FacebookProvider.php line 89:Undefined index: first_name.FacebookProvider.php github中的这个文件替换了代码.不要忘记composer dump-autoload每次都执行随机,因为有时随机似乎也有帮助.
现在它最终无论如何都有效!
编辑
我也注意到composer update做得很好.如果不起作用,请将socialite更新为最新版本.这最终解决了我最近遇到的另一个问题.
运行composer update然后composer dump-autoload为我解决了这个问题。
我注意到 Laravel Socialite 已更新,所以 @Markinson 是对的