Laravel 上的自定义身份验证

custom Authentication on Laravel

我想在 laravel 上编写自定义身份验证,我想知道我应该使用默认 auth 还是应该编写新的?

我的身份验证工作流程是:

第 1 步- 显示电子邮件表单(在这一步中我们将只获取电子邮件地址)

步骤 1-2- 检查电子邮件是否存在,如果电子邮件存在,我们将转到步骤 2,如果不存在,我应该将用户重定向到步骤 3

步骤 2- 获取用户密码(验证密码,如果一切正常,用户将登录)

步骤 3- 显示注册表并使用输入的用户电子邮件地址填写电子邮件(验证表格并注册用户)

你的解决方案是什么?

//登录规则

public function user_login_rules(array $data)
{
  $messages = [
    'email.required' => 'Please enter your email'
  ];

  $validator = Validator::make($data, [
    'email' => 'required'
  ], $messages);

  return $validator;
}

你的post方法

public function postSignIn(Request $request)
{ 
  $request_data = $request->all();
  $validator = $this->user_login_rules($request_data);   
  if($validator->fails())
  {
    return redirect()->back()->withErrors($validator)->withInput();
  }
  else
  {
    $email = $request_data['email'];
    $user_details = User::where('email', $email)->first();
    if(count($user_details) > 0)
    {
      $credentials = array('email'=> $email ,'password'=> $request_data['password']);        
      if ($this->auth->attempt($credentials, $request->has('remember')))
      {
        //Login successful
        return redirect()->to('/home');
      }
      else
      {
        $error = array('password' => 'Please enter a correct password');
        return redirect()->back()->withErrors($error); 
      }
    }
    else
    {    
      //Display register page with email
      return view('register')->with('email', $email);
    }     
  } 
}