【Laravel 自带的Auth验证登录】在laravel有自带的登录验证。只要建立对应的表和配置一些文件就能够使用,无需开发者自己去实现登录逻辑。
第一步:配置方面
在config下的auth.php配置guards 和 providers 。 之后新建文件和数据库名称要和这里的对应。
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],'api' => [
'driver' => 'token',
'provider' => 'users',
],
//Laravel Auth 验证登录
'admin' => [
'driver' => 'session',
'provider' => 'admins',
]],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],// 'users' => [
//'driver' => 'database',
//'table' => 'users',
// ],
],
第二步:数据库方面
1 新建admins表,作为后台用户表
文章图片
其中remember_token 用于是否记住用户
2 在app目录下新建Admin.php 文件对应,文件名称取决于配置文件中的名称
'required',
'password'=>'required'
];
}
文章图片
第三步:控制器中auth的使用
Auth::guard('admin')->attempt($credentials));
尝试登录
Auth::guard($guard)->guest();
判断用户是否来宾,可用于中间件,判断用户是否登录,返回false,则已经登录,反之,跳转会登录页面
Auth::guard($guard)->user();获取已经登录的用户信息,注意在__construct()中无法获取,可以在中间件里面获取
check());
判断用户是否认证
//Auth::guard($guard)->user() 获取用户信息
//Auth::guard($guard)->guest() 是否是来宾
if(Auth::guard($guard)->guest()){
if($request->ajax() || $request->wantsJson()){
return response('Unauthorized.', 401);
}else{
return redirect()->guest('admin/login');
}
}return $next($request);
}
}
$credentials = $request->only('username', 'password');
/**
* 使用laravel自带的Auth登录
* 1、密码使用的是hash加密$crypt = password_hash($password, PASSWORD_DEFAULT);
*/
if(Auth::guard('admin')->attempt($credentials)){
return response()->json(['code' => 200, 'msg' => '登录成功']);
}else{
return response()->json(['code' => 403, 'msg' => '用户名或密码错误']);
}
推荐阅读
- laravel 8 修改默认的paginate分页模板
- laravel|国际支付对接,信用卡支付对接,stripe的使用
- laravel|laravel执行过程
- 搭建远程GIT
- php|lnmp搭建遇到的尴尬事(一)
- Laravel mysql 添加外键失败
- php|laravel attempt登陆认证时候帐号密码输入正确但返回false的情况
- Laravel|laravel 验证大于零的数字
- laravel|Composer 本地路径加载 laravel-admin 扩展包