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' => AppUser::class,    ],      'admins' => [     'driver' => 'eloquent',     'model' => AppAdmin::class,    ],      // 'users' => [    //  'driver' => 'database',    //  'table' => 'users',    // ],   ],  

第二步:数据库方面

1 新建admins表,作为后台用户表

Laravel 自带的Auth验证登录方法

其中remember_token 用于是否记住用户

2 在app目录下新建Admin.php 文件对应,文件名称取决于配置文件中的名称

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

Laravel 自带的Auth验证登录方法

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

  Auth::guard('admin')->attempt($credentials)); 尝试登录  Auth::guard($guard)->guest();判断用户是否来宾,可用于中间件,判断用户是否登录,返回false,则已经登录,反之,跳转会登录页面  Auth::guard($guard)->user();获取已经登录的用户信息,注意在__construct()中无法获取,可以在中间件里面获取
  <?php    namespace AppHttpMiddleware;    use Closure;  use IlluminateSupportFacadesAuth;    class AdminAuthMiddleware  {   /**    * Handle an incoming request.    *    * @param IlluminateHttpRequest $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验证登录方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

—-想了解Laravel 自带的Auth验证登录方法分享!且更多的php教程关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/phpttorial/470314.html

(0)
上一篇 2020年10月26日
下一篇 2020年10月26日

精彩推荐