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);
}
}
}
我想在 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);
}
}
}