auth无法正常工作

时间:2015-08-31 08:16:04

标签: php

我正在使用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登录并且全部无效

2 个答案:

答案 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');