您的位置:首页 > 教程 > PHP编程 > Laravel 自带的Auth验证登录方法

Laravel 自带的Auth验证登录方法

2020-09-05 11:27:42 来源:易采站长站 作者:

Laravel 自带的Auth验证登录方法,用户,来宾,文件,自带,用户信息

Laravel 自带的Auth验证登录方法

易采站长站,站长之家为您整理了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 文件对应,文件名称取决于配置文件中的名称

<?phpnamespace App;use Illuminate\Foundation\Auth\User as Authenticatable;class Admin extends Authenticatable{ protected $fillable = [  'username', 'password', ]; protected $hidden = [   //remember_token 字段用于记住我的功能  'password', 'remember_token', ]; public static $rules = [  'username'=>'required',  'password'=>'required' ];}

第三步:控制器中auth的使用

Auth::guard('admin')->attempt($credentials)); 尝试登录Auth::guard($guard)->guest();判断用户是否来宾,可用于中间件,判断用户是否登录,返回false,则已经登录,反之,跳转会登录页面Auth::guard($guard)->user();获取已经登录的用户信息,注意在__construct()中无法获取,可以在中间件里面获取
<?phpnamespace App\Http\Middleware;use Closure;use Illuminate\Support\Facades\Auth;class AdminAuthMiddleware{ /**  * Handle an incoming request.  *  * @param \Illuminate\Http\Request $request  * @param \Closure $next  * @return mixed  */ public function handle($request, Closure $next, $guard = null) {  //如果没有指定的话,默认 guard 是 web,  //dump(Auth::guard($guard)->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 自带的Auth验证登录方法的详细介绍。欢迎大家对Laravel 自带的Auth验证登录方法内容提出宝贵意见

微信扫一扫

易采站长站微信账号