[英]How to redirect the user to login to facebook and have them come back to the same place?
我有一个仪表板功能,需要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
对象发送回调用函数。
更好地使用社交名流将处理对象。
重定向到Facebook驱动程序
return Socialite::driver('facebook')->redirect();
需要在.env,facebook凭证页面和本地路由页面中声明facebook重定向URL。
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
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.