【发布时间】:2017-04-23 19:39:49
【问题描述】:
我正在使用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过期了,再申请token试试看是否有效。
-
@BartBergmans 你的意思是应用秘籍刷新吗?如果这不是您的意思,那么我该如何重新请求您正在谈论的那个令牌?我对此很陌生,希望您能提供帮助!顺便说一句,如果有帮助,我已经尝试过隐身。
-
这个
$providerUser = Socialite::driver('facebook')->user();会返回什么? -
@Markinson
$providerUser返回null? -
@KelvinKyaw 在
Socialite::driver('facebook')->user()处抛出异常,所以甚至根本没有设置$providerUser
标签: php facebook laravel laravel-5.2 facebook-php-sdk