我正在使用laravel socialite登录使用gmail.i能够存储用户信息,如果已经存在gmail id和email,那么它应该重定向到仪表板。
public function googleCallback()
{
$user = Socialite::with('google')->user();
$email=$user->email;
$user_id=$user->id;
if(Auth::attempt(['email' =>$email,'password'=>$user_id]))
{
//return redirect('user/UserDashboard');
//return Redirect::to('user/UserDashboard');
echo "i am here";
}
}
在上面的代码中如果我使用echo然后它将打印.suppose如果重定向到仪表板它不会工作。我不知道为什么重定向不会为socialite工作。谁能告诉我哪里做错了? 谢谢
更新 假设如果我使用gmail或fb或github登录我的网站,那么数据将存储在我的db.if,该人第二次登录,然后它应该重定向到用户仪表板。上面的代码将检查auth ::的存在是否存在。如果我在内部打印任何想法if()阻止它工作。如果我将重定向添加到仪表板然后通过gmail登录并且全部无效
答案 0 :(得分:1)
我不知道我的答案在多大程度上是正确的,但它应该有点像这样:
public function googleCallback()
{
$user = Socialite::with('google')->user();
$email=$user->email;
$user_id=$user->id;
$user_db = \App\User::where('email', $user->email)->first();
if (count($user_db) == 1) {
echo "i am here";
} else {
// Your registration process
// With Login process i.e. auth()->attempt(YOURDATA);
}
}
这是我能做到这一点的唯一方法。如果我能提供帮助,请将其放在评论栏中。
答案 1 :(得分:0)
使用此方法重定向
return redirect()->intended('user/UserDashboard');