zoukankan      html  css  js  c++  java
  • laravel使用auth管理后台amdin数据表

    首先在config文件夹下auth.php中guards下添加

    'admin' => [
      'driver' => 'session', //从session
      'provider' => 'admins', //内容提供是由admins
    ]

    然后在config文件夹下auth.php中providers下添加

    
    
    'admin' => [
    'driver' => 'eloquent',
    'model' => AppAdmin::class,//要在app文件夹下创建admin数据库orm的模型
    ],
    在loginController中添加命名空间
    use IlluminateSupportFacadesAuth;
    再添加当前守卫

    //在控制器当中指定当前使用的是哪一个守卫
    protected function guard()
    {
    return Auth::guard('admin');
    }

    再Middleware中创建AdminAuthenticated.php,判断跳转内容如下

    <?php

    namespace AppHttpMiddleware;

    use Closure;
    use IlluminateSupportFacadesAuth;

    class AdminAuthenticated
    {
    /**
    * Handle an incoming request.
    *
    * @param IlluminateHttpRequest $request
    * @param Closure $next
    * @return mixed
    */
    public function handle($request, Closure $next)
    {
    if (Auth::guard('admin')->check()) { //专门检查后台有没有登录
    return redirect('/admin/index');//登录成功跳转地址
    }
    return $next($request);
    }
    }

    然后在appHttpKernel.php加入验证

    protected $routeMiddleware = [
    .....
    'admin'=>AdminAuthenticated::class,

    或者可为这个前者要加入命名空间

    'admin'=>IlluminateSupportFacadesAuthAdminAuthenticated::class,

    ....

    ];

    上面蓝色部分也可使用下面此替换

        protected $redirectTo = '/admin/index';

    使用此守卫进行判断

    public function __construct()
    {
    $this->middleware('admin')->except('logout');
    }

    在LoginController控制器中加入跳转新页面 

    protected $redirectTo = '/admin/index';

    //使用此方法退出登录

    public function logout(Request $request)
    {
    $this->guard()->logout();
    $request->session()->invalidate();
    return redirect('/admin/login');
    }

    再Middleware中创建AdminAuth.php,判断是否登录,内容如下

    <?php

    namespace AppHttpMiddleware;

    use Closure;
    use IlluminateSupportFacadesAuth;

    class AdminAuth
    {
    /**
    * Handle an incoming request.
    *
    * @param IlluminateHttpRequest $request
    * @param Closure $next
    * @return mixed
    */
    public function handle($request, Closure $next)
    {
    if (!Auth::guard('admin')->check()) { //专门检查后台有没有登录
    return redirect('/admin/login');
    }

    return $next($request); //没办法往下执行
    }
    }

    然后在appHttpKernel.php加入验证

    protected $routeMiddleware = [
    .....

    'admin-auth'=>IlluminateSupportFacadesAuthAdminAuth::class,

    ....

    ];

    路由使用

    Route::group(['namespace'=>'Admin','prefix'=>'admin','middleware'=>['admin-auth']],function(){
    Route::get('/index','IndexController@index')->name('admin/index');
    });

  • 相关阅读:
    遂宁2017届零诊16题(仅想说明网传答案的不正确)
    当参变分离遇见洛必达
    高考数学九大超纲内容(1)wffc
    给王志红老师构造的函数,想说明搜题软件的解答过程的不严谨!
    记住路径名
    php返回文件路径
    两个字符串合并为一个字符串的各种方法
    global作用域
    二进制字符串的比较
    var_dump — 打印变量的相关信息
  • 原文地址:https://www.cnblogs.com/zhanghuilong/p/11847951.html
Copyright © 2011-2022 走看看