laravel 后台用户登录

本文详细介绍如何在Laravel框架中实现后台管理员的权限管理,包括新建admin_users表,配置auth.php文件,创建并使用BackendAuthMiddleware和BackendGuestMiddleware中间件,以及实现LoginController控制器。此外,还展示了如何设置路由和中间件组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新建表admin_users,字段跟usersbiao表

在config/auth.php中添加配置

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'backend' => [
            'driver' => 'session',
            'provider' => 'backends',
           ],

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

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

        'backends' => [
            'driver' => 'eloquent',
            'model' => App\Models\AdminUser::class,
           ],

        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],

建立中间件BackendAuthMiddleware.php

 public function handle($request, Closure $next) {
        if (auth()->guard('backend')->guest()) {
            if ($request->ajax() || $request->wantsJson()) {
                return response('Unauthorized.', 401);
            } else {
                return redirect()->guest('backend/login');
            }
        }

        return $next($request);
    }

以及中间件BackendGuestMiddleware.php

public function handle($request, Closure $next) {
        if (auth()->guard('backend')->check()) {
            return redirect('/backend/user_groups');
        }

        return $next($request);
    }

并将中间件添加到Kernel.php中

'auth.backend' => \App\Http\Middleware\BackendAuthMiddleware::class,
        'guest.backend' => \App\Http\Middleware\BackendGuestMiddleware::class,

 

建立给控制器Backend/LoginController.php

namespace App\Http\Controllers\Backend;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
    use AuthenticatesUsers;

    protected $redirectTo = '/backend/configs';

    public function __construct() {
        $this->middleware('guest.backend', ['except' => 'logout']);
    }

    public function showLoginForm() {
        return view('backend.layouts.login');
    }

    protected function guard() {
        return auth()->guard('backend');
    }

    public function username() {
        return 'name';
    }

    public function logout(Request $request) {

        $request->session()->flush();

        $request->session()->regenerate();

        return redirect('/backend/login');
    }
}

路由

protected function mapAdminRoutes()
    {
        Route::prefix('backend')
             ->middleware('web')
             ->namespace($this->namespace.'\Backend')
             ->group(base_path('routes/backend.php'));
    }

routes/backend.php


Route::group(['middleware' => 'auth.backend'], function () {
  Route::get('/', 'HomeController@index');
  Route::resource('admin_users', 'AdminUsersController');
  Route::resource('configs', 'ConfigsController');
  Route::get('sitemap', 'SitemapController@index');
  
});

Route::get('login', 'LoginController@showLoginForm')->name('backend.login');
Route::post('login', 'LoginController@login');
Route::get('logout', 'LoginController@logout');

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值