自定义登录认证驱动

登录认证驱动

关于laravel框架中默认的认证(开箱即用)

通过一下命令,生成一系列的验证文件。包括

  • 登录,注册,忘记密码控制器
  • 登录,注册,忘记密码页面
  • 一个集合的路由 Auth::routes(); 路由中包括登录,注册,忘记密码
  • 一个用户模型
  • 生成相关表的迁移
php artisan make:auth

自定义用户表登录

  1. 配置auth.php 文件
    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],

        
        
        
        
    ],
    
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,
        ],

        
        
        
        
    ],
  1. 创建自定义的模型,字段包括(id,name,email,password,rememberToken,timestamps),设置模型的白黑字段($fillable,$hidden )。

  2. 添加一条用于测试登录的记录

  3. 登录,注册,忘记密码,登录成功后路由设置

Route::group(['prefix' => 'admin','namespace' => 'Admin'],function ($router)
{
    $router->get('login', 'LoginController@showLoginForm')->name('admin.login');
    $router->post('login', 'LoginController@login');
    $router->post('logout', 'LoginController@logout');

    $router->get('dash', 'DashboardController@index');
});
  1. 写一个用于自定义登录的控制器(使用AuthenticatesUsers Trait,成功跳转页面,构造方法中注册中间件,登录视图页面,指定配置中的认证驱动)
php artisan make:controller Admin/LgoinController
middleware('guest:admin', ['except' => 'logout']);
        $this->username = '[email protected]';
    }

    //重写登录视图
    public function showLoginForm()
    {
       return view('auth._login');
    }

    //自定义认证驱动
    protected function guard()
    {
        return auth()->guard('admin');
    }
}

  1. 可以加一个验证中间件
php artisan make:middleware AdminAuthMiddleware
guest()) {
            if ($request->ajax() || $request->wantsJson()) {
                return response('Unauthorized.', 401);
            } else {
                return redirect()->guest('admin/login');
            }
        }
        return $next($request);
    }
}
  1. 在 app\Http\Kernel.php 中注册中间件:
protected $routeMiddleware = [
    ......
    'auth.admin' => \App\Http\Middleware\AdminAuthMiddleware::class,
    ......
];

你可能感兴趣的:(自定义登录认证驱动)