Laravel8 快速入门教程二十四-管理后台Jwt配置

「这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战

背景

  1. 项目用Thinkphp5.1开发完成,对于各种关系模型的查询Tp处理起来还是比较吃力的。
  2. 作为努力奔跑的程序员,下一个项目我们决定用Lavarel进行开发。
  3. 因为掘金粑粑有奖励,所以把部分gitee上的私有的部分学习笔记整理一下。

说明

Laravel属于中大型框架,各种功能都被内置了,而且Laravel官方的文档看的我是云里雾里的,对于新手感觉不是很友好。所以此系列文章只适合有PHP基础。想快速入门搞开发的

正文

  1. 创建 Manager模型类

php artisan make:model Manager

image.png

  1. Manager实现JWT接口
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Tymon\JWTAuth\Contracts\JWTSubject;

class Manager extends Authenticatable implements JWTSubject
{
    use HasFactory;

    public function getJWTIdentifier()
    {
        return $this->getKey();
    }
    public function getJWTCustomClaims()
    {
        return [];
    }
}

复制代码
  1. config\auth.php 中配置guards

image.png

后面就是之前的步骤了 在 Admin模块中注册路由,下发Token

操作跟之前的操作很是类似,这里就不一一列举出来了。只是简单的罗列下存在的问题。

  1. 419 错误码 是因为中间件组中存在 有个post请求拦截,按照之前方法注释掉即可。

image.png

  1. 在admin路由组中注册路由

image.png

  1. 定义Manager的service

image.png

  1. 登录的控制器

image.png **注意:**这里调用了 $user->getAuthPassword() 但是我们Manager模型中是不存在这个方法的。 所以Manager模型是继承自另一个权限类的。这里需要特别注意,因为我们创建的Manager并没有继承自这个类。 use Illuminate\Foundation\Auth\User as Authenticatable;

  1. 此时访问就会获取到token

image.png

Guess you like

Origin juejin.im/post/7032072990510710815