资料介绍
软件简介
基于 tp6 的权限验证模块,参考 fastadmin 的 普通模块
目录结构
- token/Driver.php规范token的方法和功能
- token/driver/Mysql token的数据库驱动
- token/driver/Redis token的Redis驱动
- token.php token的链接token驱动并执行驱动的方法
- auth.php 权限管理类
数据库
如果多模块的话,需要建立对应的用户表、用户分组表、用户权限表
/* Navicat MySQL Data Transfer Source Server : real-think Source Server Version : 50734 Source Host : 8.136.216.46:3306 Source Database : real-think Target Server Type : MYSQL Target Server Version : 50734 File Encoding : 65001 Date: 2021-10-17 15:18:39 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for jm_admin -- ---------------------------- DROP TABLE IF EXISTS `jm_admin`; CREATE TABLE `jm_admin` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `group_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '组别ID', `username` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '用户名', `nickname` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '昵称', `password` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '密码', `salt` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '密码盐', `email` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '电子邮箱', `mobile` varchar(11) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '手机号', `avatar` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '头像', `level` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '等级', `gender` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '性别:0=女,1=男', `birthday` date DEFAULT NULL COMMENT '生日', `bio` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '格言', `money` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '余额', `score` int(10) NOT NULL DEFAULT '0' COMMENT '积分', `successions` int(10) unsigned NOT NULL DEFAULT '1' COMMENT '连续登录天数', `maxsuccessions` int(10) unsigned NOT NULL DEFAULT '1' COMMENT '最大连续登录天数', `prevtime` int(10) DEFAULT NULL COMMENT '上次登录时间', `logintime` int(10) DEFAULT NULL COMMENT '登录时间', `loginip` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '登录IP', `loginfailure` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '失败次数', `joinip` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '加入IP', `jointime` int(10) DEFAULT NULL COMMENT '加入时间', `createtime` int(10) DEFAULT NULL COMMENT '创建时间', `updatetime` int(10) DEFAULT NULL COMMENT '更新时间', `token` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'Token', `status` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '状态', `verification` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '验证', PRIMARY KEY (`id`), KEY `username` (`username`), KEY `email` (`email`), KEY `mobile` (`mobile`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会员表'; -- ---------------------------- -- Table structure for jm_admin_group -- ---------------------------- DROP TABLE IF EXISTS `jm_admin_group`; CREATE TABLE `jm_admin_group` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '组名', `rules` text COLLATE utf8mb4_unicode_ci COMMENT '权限节点', `createtime` int(10) DEFAULT NULL COMMENT '添加时间', `updatetime` int(10) DEFAULT NULL COMMENT '更新时间', `status` enum('normal','hidden') COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '状态', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会员组表'; -- ---------------------------- -- Table structure for jm_admin_rule -- ---------------------------- DROP TABLE IF EXISTS `jm_admin_rule`; CREATE TABLE `jm_admin_rule` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `pid` int(10) DEFAULT NULL COMMENT '父ID', `name` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '名称', `title` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '标题', `remark` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', `ismenu` tinyint(1) DEFAULT NULL COMMENT '是否菜单', `createtime` int(10) DEFAULT NULL COMMENT '创建时间', `updatetime` int(10) DEFAULT NULL COMMENT '更新时间', `weigh` int(10) DEFAULT '0' COMMENT '权重', `status` enum('normal','hidden') COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '状态', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会员规则表'; -- ---------------------------- -- Table structure for jm_admin_token -- ---------------------------- DROP TABLE IF EXISTS `jm_admin_token`; CREATE TABLE `jm_admin_token` ( `token` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'Token', `user_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '会员ID', `createtime` int(10) DEFAULT NULL COMMENT '创建时间', `expiretime` int(10) DEFAULT NULL COMMENT '过期时间', PRIMARY KEY (`token`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会员Token表';
引用
下载到tp6的extend\jmwl下
use jmwl\realjwt\Token; use jmwl\realjwt\Auth;
驱动和配置
$init= [ // 驱动方式 'type' => 'Mysql', 'table' =>"admin_token",//如果是Mysql使用的存储token的表名 'userprefix'=>"up:",//如果是Redis使用的存储用户名前缀 'tokenprefix'=>"tp:",//如果是Redis使用的存储token前缀 // 缓存前缀 'key' => '30tvUyXl8NkOx7YKDAoLu5FQRIGTh4qa', // 加密方式 'hashalgo' => 'ripemd160', // 缓存有效期 0表示永久缓存 'expire' => 0, ]; $usertable="admin";//用户表名,自动对应用户分组表、用户权限表 如用户表名:admin,那么用户分组名:admin_group,用户权限表:admin_rule
token类的使用和功能
这里基本不会用到,主要用的是auth类
/** Token::init($init); //判断Token是否可用 Token::check($token, $user_id); //获取Token内的信息 Token::get($token, $default = false); //写入Token Token::set($token, $user_id, $expire = null); //删除Token Token::delete($token); //清除Token Token::clear($user_id = null);
auth的羁绊用法
基础用法
//登录 // $; // $; // $this->auth->login($username, $password); // $this->auth->getUser() // $this->auth->getUserinfo() //读取当前token // $this->auth->getToken() // 判断是否登录 // $this->auth->isLogin() //获取会员组别规则列表 // $this->auth->getRuleList() // 设置当前请求的URI // $controllername= $this->request->controller(); // $actionname= $this->request->action(); // $path = str_replace('.', '/', $controllername) . '/' . $actionname; // $this->auth->setRequestUri($path); // 获取当前请求的URI // $this->auth->getRequestUri() //检测是否是否有对应权限 // $this->auth-> check($path) //根据Token初始化 // $; // $this->auth->init($token); //注册 // $; // $; // $email = '18354393242@163.com'; // $mobile= '18354393243'; // $this->auth-> register($username, $password, $email, $mobile, $extend = []) //加密密码 //$this->auth->getEncryptPassword($oldpassword, $this->_user->salt); //退出 // $this->auth->logout() //真实删除 // $this->auth->delete($user_id) //查看报错 // $this->auth->getError()
php的公共构造方法使用 验证权限
//权限验证 $this->auth = Auth::instance($init, $usertable); $this->request = Request::instance(); // token $token = $this->request->server('HTTP_TOKEN'); $controllername = $this->request->controller(); $actionname = $this->request->action(); $path = str_replace('.', '/', $controllername) . '/' . $actionname; $this->auth->setRequestUri($path); // 检测是否需要验证登录 if (!$this->auth->match($this->noNeedLogin)) { //初始化 $this->auth->init($token); //检测是否登录 if (!$this->auth->isLogin()) { return $this->error('Please login first', null, 401); } // 判断是否需要验证权限 if (!$this->auth->match($this->noNeedRight)) { // 判断控制器和方法判断是否有对应权限 if (!$this->auth->check($path)) { return $this->error('You have no permission', null, 403); } } } else { // 如果有传递token才验证是否登录状态 if ($token) { $this->auth->init($token); } } var_dump($this->auth->getUser());`
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- real-apidoc基于tp6的api生成模块
- 第6章:数字输入/输出模块(I/O) 19次下载
- TP4100,TP4101,TP4102
- 爱华微胶囊记录器TP-M725/TP-M525数据手册 0次下载
- 基于权限的Android应用风险评估方法 11次下载
- MPLAB REAL ICE在线仿真器功率监视器开发工具的详细中文资料概述
- MPLAB REAL ICE在线仿真器功率监视器的介绍和使用指南详细概述
- MPLAB REAL ICE 在线仿真器JTAG适配器的中文使用说明书
- shiro简单教程,环境搭建,权限控制,登陆验证 9次下载
- 基于ThinkPHP的权限控制模块的设计与实现许宏云 0次下载
- 提升权限模块 4次下载
- Connecting_Real_People_with_Real_Solutions 5次下载
- M25PE20-VMN6TP数据手册 32次下载
- LabVIEW Real-Time模块发行和升级说明 23次下载
- PLM系统中数据权限控制研究 0次下载
- 前端大仓monorepo权限设计思路和实现方案 523次阅读
- 一个轻量级的权限认证框架:Sa-Token 1525次阅读
- 万兴PDF密码如何查看列出的权限 835次阅读
- FPGA原型验证系统中复制功能模块的作用 591次阅读
- Linux基础的用户权限 641次阅读
- 基本的Linux权限模型以及chmod 777含义 2330次阅读
- 权限框架jcasbin的角色权限配置 1304次阅读
- 权限系统中的数据权限设计经验分享 1515次阅读
- 基于使用TP-4056模块制造锂离子电池充电器设计 5787次阅读
- .NET MVC身份验证访问权限控制设计 1963次阅读
- 如何给EOS账号设置自定义权限 1414次阅读
- 基于Katalon Studio的接口测试试验token的验证 5233次阅读
- WO TOKEN钱包是什么东西?WO TOKEN钱包详细资料白皮书介绍 4.1w次阅读
- 浅谈Linux权限管理的ACL权限 8865次阅读
- TP14管脚图 3068次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多