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

98 阅读1分钟

本文由 简悦 SimpRead 转码, 原文地址 juejin.cn

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

背景

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

说明

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

正文

  1. 创建 Manager 模型类

php artisan make:model Manager

  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

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

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

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

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

  3. 定义 Manager 的 service

  4. 登录的控制器

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

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