从Facebook社交名流成功回调后,我被重定向到登录页面

时间:2018-12-31 06:30:21

标签: php laravel-5.7 laravel-socialite

我正在尝试使用laravel socialite设置“使用Facebook登录”。当我尝试登录时,它会从Facebook获得成功的回调,我正在将获取的数据存储到数据库中,然后尝试重定向到主页。这样做时,我被重定向回登录页面,而从未到达主页。

这是我的代码- AuthController.php

use App\Http\Controllers\Controller;
use Auth;
use Socialite;
use App\User;

[.. // class defination and home redirect variable

public function redirectToProvider($provider)
{
   return Socialite::driver($provider)->redirect();
}

public function handleProviderCallback($provider)
{
  $user = Socialite::driver($provider)->user();
  // dd($user);
  $authUser = $this->findOrCreateUser($user, $provider);
  Auth::login($authUser, true);
  return redirect($this->redirectTo);
}

public function findOrCreateUser($user, $provider)
{
   $authUser = User::where('id', $user->id)->first();
   if ($authUser) {
       return $authUser;
}
   return User::create([
       'name'     => $user->name,
       'email'    => $user->email,
       // 'avatar'    => $user->avatar,
       'provider' => $provider,
       'id' => $user->id
  ]);
}
..] 

Web.php

Route::get('auth/{provider}', 'Auth\AuthController@redirectToProvider');
Route::get('auth/{provider}/callback', 'Auth\AuthController@handleProviderCallback');

.env文件

CALLBACK_URL=http://localhost/xampp/tccdev/public/auth/facebook/callback

如果需要其他代码,请告诉我。

1 个答案:

答案 0 :(得分:0)

您应该直接将重定向与路由一起使用,例如:

return redirect(route("routeNameGoesHere"));

或者您可以使用向用户显示您想要的视图,例如:

return view("viewNameGoesHere");