本文由 简悦 SimpRead 转码, 原文地址 juejin.cn
「这是我参与 11 月更文挑战的第 12 天,活动详情查看:2021 最后一次更文挑战」
背景
- 项目用 Thinkphp5.1 开发完成,对于各种关系模型的查询 Tp 处理起来还是比较吃力的。
- 作为努力奔跑的程序员,下一个项目我们决定用 Lavarel 进行开发。
- 因为掘金粑粑有奖励,所以把部分 gitee 上的私有的部分学习笔记整理一下。
说明
Laravel 属于中大型框架,各种功能都被内置了,而且 Laravel 官方的文档看的我是云里雾里的,对于新手感觉不是很友好。所以此系列文章只适合有 PHP 基础。想快速入门搞开发的。
正文
- 创建 Manager 模型类
php artisan make:model Manager
- 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 [];
}
}
复制代码
- config\auth.php 中配置 guards
后面就是之前的步骤了 在 Admin 模块中注册路由,下发 Token
操作跟之前的操作很是类似,这里就不一一列举出来了。只是简单的罗列下存在的问题。
-
419 错误码 是因为中间件组中存在 有个 post 请求拦截,按照之前方法注释掉即可。
-
在 admin 路由组中注册路由
-
定义 Manager 的 service
-
登录的控制器
** 注意:** 这里调用了 $user->getAuthPassword() 但是我们 Manager 模型中是不存在这个方法的。 所以 Manager 模型是继承自另一个权限类的。这里需要特别注意,因为我们创建的 Manager 并没有继承自这个类。 use Illuminate\Foundation\Auth\User as Authenticatable;
- 此时访问就会获取到 token