我有一个仪表板功能,需要登录facebook。如果令牌已过期,我会抓住它。
到目前为止一直很好,但是,我希望用户登录并返回同一个地方。
这是代码:
try {
//make FB client
$fb = new Facebook( [
'app_id' => config( 'app.FACEBOOK_APPID' ),
'app_secret' => config( 'app.FACEBOOK_APPSECRET' ),
'default_graph_version' => 'v2.8',
] );
//Pull events realted to this user
$events = $fb->get( $endpoint, $accessToken )->getDecodedBody();
//catch exception if token is expired
} catch ( FacebookSDKException $e ) {
//redirect to facebook login
return redirect()->action('Auth\SocialiteLoginController@redirectToProvider', ['facebook']);
}
return $events;
我的问题是 ,return redirect()
语句,没有将用户重定向到Facebook,但是,它将RedirectResponse
对象发回调用函数。
答案 0 :(得分:0)
更好地使用社交网络驱动它会处理对象。
重定向到Facebook司机
return Socialite::driver('facebook')->redirect();
需要在.env,facebook凭证页面和本地路由页面中声明facebook重定向网址。
public function handleFacebookCallback(Request $request){
$AccessToken = Socialite::driver('facebook')->getAccessTokenResponse($request->code);
if($token = $AccessToken['access_token']){
$facebook =Socialite::driver('facebook')->userFromToken($token);
if($facebook->id){
//insert process and get auth userkey
redirect('/login page');
}else{
redirect('/dashboard'); //not auth user
}
}
}