首页 > 解决方案 > 如何在 laravel 5.6 中进行自定义登录?

问题描述

我使用了自己的自定义登录而不使用身份验证。这是我的代码

 public function userLogin(Request $request){

  if($request->isMethod('post')){
    $data = $request->input();

    $this->validate($request, [
        'uemail'=> 'required|email',
        'user_type'=> 'required',
        'user_id' => 'required',
        'upassword' => 'required|min:6',
      ],
      [
        'uemail.email' => 'Email must be valid',
        'uemail.required' => 'Email is required',
        'user_type.required' => 'Type is required',
        'user_id.required' => 'Name is required',
        'upassword.required' => 'Password is required',
        'upassword.min' => 'Password must be at least 6 characters',
      ]);

      $user_type = $data['user_type'];
      $user_id = $data['user_id'];
      $uemail = $data['uemail'];
      $upassword = $data['upassword'];
      $hashPass = bcrypt($upassword);

      DB::enableQueryLog();

      $user1 =  User::where('type',$user_type)->where('user_id',$user_id)->where('email',$uemail)
      ->where('status',1)->where('deleted_at',null)->firstOrFail();

      $user =  DB::table('users')->where('type',$user_type)->where('user_id',$user_id)->where('email',$uemail)
      ->where('status',1)->where('deleted_at',null);

    //  $query = DB::getQueryLog();
     // $query = end($query);

      $isPasswordCorrect = Hash::check($upassword, $user1->password);

      if($user == null){
        echo "Failed"; die;
      }

       if($user->exists() && $isPasswordCorrect){
          echo "Success"; die;
          Session::put('userSession',$user1->email);
          Session::put('loginSession',$user_type);
          Session::put('idSession',$user1->user_id);

         return redirect('/user/dashboard');
    } else {
       return redirect('/user')->>with('flash_message_error','Invalid Login Credentials..');
    }

  }

    return view('death_notice.user_login');
}

这是我的登录功能。但它不起作用。当凭据正确时,它会重定向到仪表板,即正确,但是当电子邮件或密码或其他凭据错误时,它会显示错误消息。但是,当用户输入不在数据库中的此类数据时,它必须显示用户不存在的消息。但它的页面未找到错误...

我想要解决这个问题。

标签: phplaravel-5

解决方案


好的,首先确认,您在 web.php 中定义了类似“/user”的路由


推荐阅读