在线教育开发之用户认证
为了更好地验证登录界面传递的数据,可以使用larvel用户认证功能,更快捷的认证登录界面提交的信息是否符合数据表中的信息。在laravel中系统给用户提供了一个比较完备的用户认证机制,其使用是通过Auth门面去实现的。
1.前端通过AJAX异步提交数据到控制器,控制器接收数据再传递给模型,模型中use Auth 门面;
1.1在模型中定义表名
//定义表
protected $table = 'manager';
2.编写模型代码
//登录
public function login($data)
{
$rule = [
'username' => 'bail|required|min:2|max:20',
'password' => 'bail|required|min:6',
'captcha' => 'required|captcha',
];
$msg = [
'username.required' => '用户名不能为空',
'username.min' => '用户名长度不能低于一个字符',
'username.max' => '用户名长度不能高于二十个字符',
'password.required' => '密码不能为空',
'captcha.required' => '验证码不能为空',
'captcha.captcha' => '验证码不正确',
];
$validate = Validator::make($data,$rule,$msg);
if ($validate->fails()){
return $validate->errors()->first();
}
//guadr方法指定想要使用的guard实例,这种机制允许你再同一个应用中访问不同的认证模型或用户表实现完全独立的用户认证
//attempt方法第一个参数接收键值数组,第二个参数可以传递一个布尔值实现记住我
$result = Auth::guard('admin')->attempt(['username'=>$data['username'],'password'=>$data['password'],'status'=>'2'],request()->get('online'));
if ($result){
return 1;
}else{
return '用户名或密码错误';
}
}
语法:Auth::guard(指定guard实例) -> attempt(需要验证的用户信息关联数组,[bool值]);
//guadr方法指定想要使用的guard实例,这种机制允许你再同一个应用中访问不同的认证模型或用户表实现完全独立的用户认证;
//attempt方法第一个参数接收键值数组,第二个参数可以传递一个布尔值实现记住我;
3.定义guard,在config/auth.php中定义guard实例
4.定义对应admin guard实例的提供者;
5.引入trait
这样登录认证就完成了!!
效果图如下
扫描二维码关注公众号,回复:
11707278 查看本文章