• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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 文件对应,文件名称取决于配置文件中的名称

    ?php
    namespace 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()中无法获取,可以在中间件里面获取
    ?php
    
    namespace 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 解决强制跳转 https的问题
    • Laravel重定向,a链接跳转,控制器跳转示例
    • Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
    • Laravel 微信小程序后端实现用户登录的示例代码
    • laravel利用中间件防止未登录用户直接访问后台的方法
    • Laravel实现登录跳转功能
    上一篇:laravel 使用auth编写登录的方法
    下一篇:Laravel框架表单验证操作实例分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Laravel 自带的Auth验证登录方法 Laravel,自带,的,Auth,验证,