那曲檬骨新材料有限公司

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>real-token基于tp6的權(quán)限驗(yàn)證模塊

real-token基于tp6的權(quán)限驗(yàn)證模塊

2022-06-29 | zip | 0.02 MB | 次下載 | 免費(fèi)

資料介紹

授權(quán)協(xié)議 BSD
開發(fā)語言 PHP
操作系統(tǒng) 跨平臺(tái)
軟件類型 開源軟件

軟件簡介

基于 tp6 的權(quán)限驗(yàn)證模塊,參考 fastadmin 的 普通模塊

目錄結(jié)構(gòu)

  • token/Driver.php規(guī)范token的方法和功能
  • token/driver/Mysql token的數(shù)據(jù)庫驅(qū)動(dòng)
  • token/driver/Redis token的Redis驅(qū)動(dòng)
  • token.php token的鏈接token驅(qū)動(dòng)并執(zhí)行驅(qū)動(dòng)的方法
  • auth.php 權(quán)限管理類

數(shù)據(jù)庫

如果多模塊的話,需要建立對(duì)應(yīng)的用戶表、用戶分組表、用戶權(quán)限表

/*
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 '手機(jī)號(hào)',
  `avatar` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '頭像',
  `level` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '等級(jí)',
  `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 '連續(xù)登錄天數(shù)',
  `maxsuccessions` int(10) unsigned NOT NULL DEFAULT '1' COMMENT '最大連續(xù)登錄天數(shù)',
  `prevtime` int(10) DEFAULT NULL COMMENT '上次登錄時(shí)間',
  `logintime` int(10) DEFAULT NULL COMMENT '登錄時(shí)間',
  `loginip` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '登錄IP',
  `loginfailure` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '失敗次數(shù)',
  `joinip` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '加入IP',
  `jointime` int(10) DEFAULT NULL COMMENT '加入時(shí)間',
  `createtime` int(10) DEFAULT NULL COMMENT '創(chuàng)建時(shí)間',
  `updatetime` int(10) DEFAULT NULL COMMENT '更新時(shí)間',
  `token` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT 'Token',
  `status` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '狀態(tài)',
  `verification` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '驗(yàn)證',
  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='會(huì)員表';

-- ----------------------------
-- 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 '權(quán)限節(jié)點(diǎn)',
  `createtime` int(10) DEFAULT NULL COMMENT '添加時(shí)間',
  `updatetime` int(10) DEFAULT NULL COMMENT '更新時(shí)間',
  `status` enum('normal','hidden') COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '狀態(tài)',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='會(huì)員組表';

-- ----------------------------
-- 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 '標(biāo)題',
  `remark` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '備注',
  `ismenu` tinyint(1) DEFAULT NULL COMMENT '是否菜單',
  `createtime` int(10) DEFAULT NULL COMMENT '創(chuàng)建時(shí)間',
  `updatetime` int(10) DEFAULT NULL COMMENT '更新時(shí)間',
  `weigh` int(10) DEFAULT '0' COMMENT '權(quán)重',
  `status` enum('normal','hidden') COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '狀態(tài)',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='會(huì)員規(guī)則表';

-- ----------------------------
-- 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 '會(huì)員ID',
  `createtime` int(10) DEFAULT NULL COMMENT '創(chuàng)建時(shí)間',
  `expiretime` int(10) DEFAULT NULL COMMENT '過期時(shí)間',
  PRIMARY KEY (`token`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='會(huì)員Token表';
 

引用

下載到tp6的extend\jmwl下

use jmwl\realjwt\Token;
use jmwl\realjwt\Auth;

驅(qū)動(dòng)和配置

  $init= [
           // 驅(qū)動(dòng)方式
           'type'     => 'Mysql',
           'table'     =>"admin_token",//如果是Mysql使用的存儲(chǔ)token的表名
           
           'userprefix'=>"up:",//如果是Redis使用的存儲(chǔ)用戶名前綴
           'tokenprefix'=>"tp:",//如果是Redis使用的存儲(chǔ)token前綴
           // 緩存前綴
           'key'      => '30tvUyXl8NkOx7YKDAoLu5FQRIGTh4qa',
           // 加密方式
           'hashalgo' => 'ripemd160',
           // 緩存有效期 0表示永久緩存
           'expire'   => 0,
       ];  
       $usertable="admin";//用戶表名,自動(dòng)對(duì)應(yīng)用戶分組表、用戶權(quán)限表 如用戶表名:admin,那么用戶分組名:admin_group,用戶權(quán)限表:admin_rule

token類的使用和功能

這里基本不會(huì)用到,主要用的是auth類

   /**
       
       Token::init($init);
       
       //判斷Token是否可用
       Token::check($token, $user_id);
       //獲取Token內(nèi)的信息
       Token::get($token, $default = false);
       //寫入Token
       Token::set($token, $user_id, $expire = null);
       //刪除Token
       Token::delete($token);
       //清除Token
       Token::clear($user_id = null);

auth的羈絆用法

基礎(chǔ)用法

              //登錄
              // $;
              // $; 
              //  $this->auth->login($username, $password);
              //   $this->auth->getUser()
              // $this->auth->getUserinfo()
              //讀取當(dāng)前token
              // $this->auth->getToken()
              // 判斷是否登錄
              // $this->auth->isLogin()
              //獲取會(huì)員組別規(guī)則列表
              // $this->auth->getRuleList() 
                
              // 設(shè)置當(dāng)前請(qǐng)求的URI
              // $controllername= $this->request->controller();  
              // $actionname= $this->request->action();  
              // $path = str_replace('.', '/', $controllername) . '/' . $actionname;
              // $this->auth->setRequestUri($path);  
              // 獲取當(dāng)前請(qǐng)求的URI
              // $this->auth->getRequestUri()
              //檢測是否是否有對(duì)應(yīng)權(quán)限
              // $this->auth-> check($path)
              //根據(jù)Token初始化
              //  $;
              //  $this->auth->init($token);
              //注冊(cè)
              // $;
              // $; 
              // $email = '18354393242@163.com';
              // $mobile= '18354393243';
              // $this->auth-> register($username, $password, $email, $mobile, $extend = [])
              //加密密碼
              //$this->auth->getEncryptPassword($oldpassword, $this->_user->salt);
              //退出
               //  $this->auth->logout()
               //真實(shí)刪除
              //  $this->auth->delete($user_id)
              
              //查看報(bào)錯(cuò)
              // $this->auth->getError()  
?

php的公共構(gòu)造方法使用 驗(yàn)證權(quán)限

      //權(quán)限驗(yàn)證
      $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);
      // 檢測是否需要驗(yàn)證登錄
      if (!$this->auth->match($this->noNeedLogin)) {

          //初始化
          $this->auth->init($token);
          //檢測是否登錄
          if (!$this->auth->isLogin()) {

              return $this->error('Please login first', null, 401);
          }
          // 判斷是否需要驗(yàn)證權(quán)限
          if (!$this->auth->match($this->noNeedRight)) {
              // 判斷控制器和方法判斷是否有對(duì)應(yīng)權(quán)限
              if (!$this->auth->check($path)) {
                  return $this->error('You have no permission', null, 403);
              }
          }
      } else {

          // 如果有傳遞token才驗(yàn)證是否登錄狀態(tài)
          if ($token) {
              $this->auth->init($token);
          }
      }
      var_dump($this->auth->getUser());`
?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)
24天星吉凶| 姚记娱乐城信誉最好| 百家乐官网视频游戏界面| 百家乐游戏机说明书| 太阳城娱乐开户| 淘宝博百家乐官网的玩法技巧和规则 | 大发888下载网站| 百家乐官网庄家怎样赚钱| 幸运水果机游戏| 百家乐官网大路图| 大发888下载 df888gfxzylc8| 百家乐官网牌具公司| 水果机破解器| 网上百家乐官网娱乐场开户注册| 大发888真钱棋牌| 百家乐官网投注外围哪里好| 大发888客服端下载| 百家乐官网斗牛稳赚| 百家乐网络赌场| 真人百家乐官网分析软件是骗局| 连环百家乐的玩法技巧和规则| 新2百家乐官网现金网百家乐官网现金网 | 百家乐全部规则| 广东百家乐官网主论坛| 水果机技巧规律| 永利博百家乐官网的玩法技巧和规则 | 奇博娱乐| 百家乐投注技巧| 澳门百家乐官网游戏皇冠网| 威尼斯人娱乐城官网lm0| 蓝盾百家乐官网赌场娱乐网规则| 香港六合彩报码| 玩百家乐游戏经验| 网上百家乐官网网址| 百家乐的薇笑打法| 武汉百家乐官网庄闲和| 澳盈88娱乐城| 百家乐游戏机路法| 真人百家乐官网策略| 大发888娱乐场c17| 百家乐龙虎规则|