Press "Enter" to skip to content

Laravel框架的登录认证定义

1、首先config/auth.php 配置下需要做修改

守护者guard

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

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

        'admin' => [
            'driver' => 'session',
            'provider' => 'admin',
        ],
    ],

2、修改服务提供者

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

    'admin' => [
        'driver' => 'eloquent',
        'model' => App\Models\system\Manager::class,
    ],

3、Manager需要继承框架的Model类、实现框架接口

class Manager extends Model implements \Illuminate\Contracts\Auth\Authenticatable
{
    use \Illuminate\Auth\Authenticatable;

以上已经可以实现认证了,但是需要在某个切入点植入认证判断这时需要中间件

//Kernel.php
protected $routeMiddleware = [
   'admin' => AdminMiddleware::class,

//认证调用
 $result = Auth::guard('admin')->attempt($data);
 if ($result) {

php artisan make:middleware AdminMiddleware

使用中间件

$this->middleware('admin')->except(['login', 'check']);

发表评论