laravel 11 区分多模块的token

数据表:用户表(users)、管理员表(admin_user),

  • 配置bootstrap/app.php
    'guards' => ['web' => ['driver' => 'session','provider' => 'admin_users',],'home' => ['driver' => 'sanctum','provider' => 'users',],'admin' => ['driver' => 'sanctum','provider' => 'admin_users',]],'providers' => ['admin_users' => ['driver' => 'eloquent','model' => env('AUTH_MODEL', App\Models\AdminUser::class),],'users' => ['driver' => 'eloquent','model' => env('AUTH_MODEL', App\Models\User::class),],],
  • 创建中间件

  • checkHomeEndToken.php

  • checkAdminEndToken.php

 php artisan make:middleware checkHomeEndToken  // home路由使用php artisan make:middleware checkAdminEndToken // admin路由使用
  • 实现中间件
<?phpnamespace App\Http\Middleware;use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;class checkHomeEndToken
{public function handle(Request $request, Closure $next): Response{if ($request->user('home') && $request->user('home')->tokenCan('home-end')) {return $next($request);}return response()->json(['message' => '未登录'], 401);}
}
<?phpnamespace App\Http\Middleware;use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;class checkAdminEndToken
{public function handle(Request $request, Closure $next): Response{if ($request->user('admin') && $request->user('admin')->tokenCan('admin-end')) {return $next($request);}return response()->json(['message' => '未登录'], 401);}
}
  • 配置路由

路由配置到web.php,api路由不使用了。我把web的csrf去掉了。用的也是token

<?phpuse App\Http\Controllers\admin\AuthController;
use Illuminate\Support\Facades\Route;
use App\Http\Middleware\checkAdminEndToken;
use App\Http\Middleware\checkHomeEndToken;// 前台路由
Route::prefix('/')->middleware(['auth:sanctum',checkHomeEndToken::class])->group(function () {// 首页Route::get('',[\App\Http\Controllers\home\IndexController::class,'index']);
});//  后台管理路由
Route::prefix('admin')->middleware(['auth:sanctum',checkAdminEndToken::class])->group(function () {// 登录 不使用auth:sanctumRoute::post('login', [AuthController::class,'login'])->withoutMiddleware(['auth:sanctum',checkAdminEndToken::class]);// 管理员Route::resource('admin-user', \App\Http\Controllers\admin\AdminUserController::class)->except(['create', 'edit']);// 角色Route::resource('role', \App\Http\Controllers\admin\RoleController::class)->except(['create', 'edit']);
});
  • 登录
$token = $request->user()->createToken('admin',['admin-end'])->plainTextToken;

完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/879226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS 常用元素属性

CSS 属性有很多, 可以参考文档 CSS 参考手册 1. 字体属性 设置字体 多个字体之间使用逗号分隔. (从左到右查找字体, 如果都找不到, 会使用默认字体. )如果字体名有空格, 使用引号包裹.建议使用常见字体, 否则兼容性不好. <style>.one {font-family:"Microsoft Ya…

Machine Learning: A Probabilistic Perspective 机器学习:概率视角 PDF免费分享

下载链接在博客最底部&#xff01;&#xff01; 之前需要参考这本书&#xff0c;但是大多数博客都是收费才能下载本书。 在网上找了好久才找到免费的资源&#xff0c;浪费了不少时间&#xff0c;在此分享以节约大家的时间。 链接: https://pan.baidu.com/s/1erFsMcVR0A_xT4fx…

无人机遂行编队飞行中的纯方位无源定位(2022数模国赛B题)

文章目录 论文项目地址 数模国赛前的练手题&#xff0c;实力不够&#xff0c;参考了好多论文才写出来&#xff0c;个人感觉思路应该没什么大问题&#xff0c;供大家参考 论文 项目地址 github&#xff1a;UAVFormationFlight gitee&#xff1a;UAVFormationFlight 项目包含 完…

指针式仪表识别

源码下载&#xff1a;小宅博客网 效果如下&#xff1a; 工程结构&#xff1a; 说明&#xff1a; 源码是针对下面这种刻度&#xff0c;并且单个指针的仪表的 如果是下面这种&#xff0c;刻度线被连接起来的&#xff0c;目前不支持转换成仪表单位&#xff0c;只能输出指针角度&…

探索自动化的魔法:Python中的pyautogui库

文章目录 探索自动化的魔法&#xff1a;Python中的 pyautogui 库背景&#xff1a;为什么选择pyautogui&#xff1f;pyautogui是什么&#xff1f;如何安装pyautogui&#xff1f;五个简单的库函数使用方法场景应用常见Bug及解决方案总结 探索自动化的魔法&#xff1a;Python中的 …

【Linux】 LTG:移动硬盘部署Ubuntu24.04

Ubuntu To Go 是一种便携式的 Ubuntu 操作系统解决方案&#xff0c;允许用户将 Ubuntu 系统安装在 USB 驱动器或其他可移动存储设备上。这样&#xff0c;用户可以在任何支持 USB 启动的计算机上运行 Ubuntu&#xff0c;而无需在本地硬盘上进行安装。 准备工作 移动硬盘&#x…

C++初阶:string类的模拟实现

✨✨小新课堂开课了&#xff0c;欢迎欢迎~✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C&#xff1a;由浅入深篇 小新的主页&#xff1a;编程版小新-CSDN博客 前言&#xff1a; 前面已经对string类进行了…

7系列FPGA HR/HP I/O区别

HR High Range I/O with support for I/O voltage from 1.2V to 3.3V. HP High Performance I/O with support for I/O voltage from 1.2V to 1.8V. UG865&#xff1a;Zynq-7000 All Programmable SoC Packaging and Pinout

企业四要素核验是什么?如何应用

企业四要素核验是指对企业名称、社会统一信用代码&#xff08;或注册号&#xff09;、法人名称以及法人身份证号码等四项关键信息进行核验的过程。这一核验步骤是确保企业信息真实性和合法性的重要手段&#xff0c;广泛应用于各个行业领域&#xff0c;以防范企业身份被冒用、欺…

Android 车联网——CarProperty使用实例(二十三)

在熟悉了 Car 下的相关 Manager 和 Service 后,这里我们通过需求来实现 CarProperty 的使用实例。 一、使用实例 1、需求分析 假如有这样一个需求,需要封装一个 SDK 为 APP 提供车辆信息、空调状态以及驾驶信息等相关属性的值及变化情况。这里我们首先需要确认各种属性对应…

JVM锁的优化与逃逸分析

锁消除 是指JVM即时编译器在运行时&#xff0c;对一些代码上要求同步&#xff0c;但是被检测到不可能存在共享数据竞争的锁进行消除。锁消除的主要判定依据来源于逃逸分析的数据支持。JIT&#xff08;Just-In-Time&#xff0c;即时编译&#xff09;&#xff1a;是一种在程序运…

【STM32 Blue Pill编程】-定时器计数模式

定时器计数模式 文章目录 定时器计数模式1、定时器计数模式介绍2、硬件准备及接线3、模块配置3.1 定时器计数模式配置3.2 定时器中断配置3.3 串口配置4、代码实现在本文中,我们将讨论如何在计数器模式下配置 STM32 Blue Pill 定时器模块。 要将定时器用作计数器,我们将其配置…

【mechine learning-六-supervise learning之线性回归模型】

监督学习之线性回归模型 线性回归模型线性模型回归模型 如何使用线性模型实现智能化预测呢寻找数据训练模型输入、特征、目标、预测值、模型代价函数 线性模型是人工智能监督学习中最广泛的应用&#xff0c;所以有必要先学习一下这个基础模型&#xff0c;做好基石。 线性回归模…

在 CentOS 中永久关闭防火墙的步骤

在 CentOS 中永久关闭防火墙的步骤 在 CentOS 系统中&#xff0c;防火墙通常由 firewalld 服务管理。如果你希望在系统中永久关闭防火墙&#xff0c;可以按照以下步骤操作&#xff1a; 1. 停止防火墙服务 首先&#xff0c;你需要停止当前正在运行的防火墙服务。可以使用以下…

猎板PCB大讲堂:IPHONE16的线路板的升级猜测

iPhone 16 系列与 iPhone 15 系列在 PCB (印刷电路板) 设计上的主要差异可能体现在材料和技术上。根据 TrendForce 的分析&#xff0c;iPhone 16 预计将采用树脂涂覆铜箔&#xff08;RCC&#xff09;作为新的印刷电路板&#xff08;PCB&#xff09;材料&#xff0c;这一改变将使…

使用 ShuffleNet 模型在 CIFAR-100 数据集上的图像分类

简介 在深度学习领域&#xff0c;图像分类任务是衡量算法性能的重要基准。本文将介绍我们如何使用一种高效的卷积神经网络架构——ShuffleNet&#xff0c;来处理 CIFAR-100 数据集上的图像分类问题。 CIFAR-100 数据集简介 CIFAR-100 数据集是一个广泛使用的图像分类数据集&…

QT的绘画事件和网络通信

画一个时钟 #include "widget.h" #include "ui_widget.h" #include <QPainter> #include <QDebug> #include <QTime> #include <QTimer>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(…

11_跳表(Skip List)

菜鸟: 老鸟&#xff0c;我最近在处理一个数据操作的时候遇到了性能问题。我在一个有序数组中查找元素&#xff0c;发现查找速度有点慢&#xff0c;尤其是数据量大的时候。你有什么好的建议吗&#xff1f; 老鸟: 这是个好问题&#xff0c;有许多数据结构可以优化查找操作。你听…

Python爱心射线(完整代码)

目录 系列目录 写在前面​ 完整代码 下载代码 代码分析 写在后面 系列目录 序号直达链接表白系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3

人工智能领域各方向顶级会议和期刊

会议 人工智能基础与综合&#xff1a;AAAI、CICAI (!)、UAI、IJCAI 机器学习&#xff1a;COLT、ICLR、ICML、NeurIPS 模式识别与计算机视觉&#xff1a;ECCV、CVPR、ICCV 语言与语音处理&#xff1a;ACL、EMNLP 知识工程与数据挖掘&#xff1a;SIGKDD、SIGMOD、ICDE、SIGIR、V…