Laravel 5.6错误RouteCollection.php中的NotFoundHttpException(第179行)

时间:2018-02-19 04:34:16

标签: facebook laravel login

我尝试登录facebook它在RouteCollection.php中的错误NotFoundHttpException(第179行)

我使用的是Laravel 5.6

 public function facebookAuthRedirect()
{
    return Socialite::with('facebook')->redirect();
}

如果facebook登录成功,则重定向到Facebook

 public function facebookSuccess()
{       
    $provider = Socialite::with('facebook');
    if (Input::has('code')){
        $user = $provider->stateless()->user();
        //dd($user); // print value debug.
        $email = $user->email;
        $name  = $user->name;
        $password = substr($user->token,0,10);
        $facebook_id = $user->id;

        //เช็คว่า email เป็น null หรือไม่
          if($email == null){ // case permission is not email public.
            $user = $this->checkExistUserByFacebookId($facebook_id);

        if($user == null){
            $email = $facebook_id;
               }
            }
            else
            {
                   $user = $this->checkExistUserByEmail($email);
                    if($user != null){
                        if($user->facebook_id == ""){ // update account when not have facebook id.
                            $user->facebook_id = $facebook_id;
                            $user->save();
                    }
                }
            }

                if($user!=null){ // Auth exist account.
                    Auth::login($user);
                    return redirect('index/');
                }
                else{ // new Account.
                    $user = $this->registerUser($email,$name,$password,$facebook_id);
                    Auth::login($user);
                    return redirect('index/');
                }
            }
            return redirect('/');
        }

查看电子邮件和Facebook

private function checkExistUserByEmail($email)
{
    $user = \App\User::where('email','=',$email)->first();
    return $user;
}

private function checkExistUserByFacebookId($facebook_id)
{
    $user = \App\User::where('facebook_id','=',$facebook_id)->first();
    return $user;
}

会员注册

private function registerUser($email,$name,$password,$facebook_id)
{
        $user = new \App\User;
        $user->email = $email;
        $user->name = $name;
        $user->password = Hash::make($password); // Hash::make
        $user->balance = 0;
        $user->level = "member";
        $user->facebook_id = $facebook_id;
        $user->save();

        return $user;
}

M路线文件web.php

Route::get('login/facebook', 'Auth\LoginController@facebookAuthRedirect');

Route :: get(' login / facebook / callback',' Auth \ LoginController @ facebookSuccess');

1 个答案:

答案 0 :(得分:0)

清除路由缓存:

php artisan route:cache

然后检查结果