如何重定向用户登录到Facebook并让他们回到同一个地方?

时间:2018-04-16 12:44:58

标签: php redirect laravel-5 facebook-php-sdk laravel-socialite

我有一个仪表板功能,需要登录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对象发回调用函数。

1 个答案:

答案 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
        }
     }
 }