2015-08-31 26 views
1

我的工作laravel交际花使用gmail.i可以能够存储用户信息,如果Gmail ID和电子邮件已经存在,那么它应该重定向到仪表盘登录。AUTH不工作

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"; 
       } 
} 

在上面的代码,如果我使用的回声,然后将打印.suppose如果重定向到仪表板,它不会干活。不知道为什么重定向socialite.Can任何人不会工作,告诉我在哪里做错了吗? 谢谢

更新: 想,如果我登录到我的网站使用Gmail或FB或github上则数据将在我的db.if这个人登录第二次,那么它应该重定向到用户仪表盘存储。上面的代码将检查auth :: attempt是否存在或不。如果我打印任何认为在里面if()阻止它的作品。假设我添加重定向到仪表板然后登录通过Gmail和所有不工作

+0

是否'redirect->动作( 'SomeController')'或'redirect->回()'或'redirect->路线( 'some_route')'的工作? – Andrew

+0

Andrew.not working.i使用laravel 5.1 – vision

+0

如果我打印print_r(Auth :: user());这在里面,如果那么它会显示所有数据 – vision

回答

0

使用此重定向

return redirect()->intended('user/UserDashboard'); 
+0

@hi已经尝试,但没有用我 – vision

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); 
    } 
} 

这是我可以做这件事的唯一途径。如果有什么我可以帮忙的,把它放在评论框中。

+0

好吧。如果我这样做,那么如何注销用户? – vision

+0

就像'auth() - > logout()' –

+0

一样简单,但是你的上面的代码没有使用权限,只是简单的查询权限。 – vision

相关问题