91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>real-token基于tp6的權限驗證模塊

real-token基于tp6的權限驗證模塊

2022-06-29 | zip | 0.02 MB | 次下載 | 免費

資料介紹

授權協議 BSD
開發語言 PHP
操作系統 跨平臺
軟件類型 開源軟件

軟件簡介

基于 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());`
?

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

評論

查看更多

下載排行

本周

  1. 1DD3118電路圖紙資料
  2. 0.08 MB   |  1次下載  |  免費
  3. 2AD庫封裝庫安裝教程
  4. 0.49 MB   |  1次下載  |  免費
  5. 3PC6206 300mA低功耗低壓差線性穩壓器中文資料
  6. 1.12 MB   |  1次下載  |  免費
  7. 4網絡安全從業者入門指南
  8. 2.91 MB   |  1次下載  |  免費
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下載  |  免費
  11. 6海川SM5701規格書
  12. 1.48 MB  |  次下載  |  免費
  13. 7H20PR5電磁爐IGBT功率管規格書
  14. 1.68 MB   |  次下載  |  1 積分
  15. 8IP防護等級說明
  16. 0.08 MB   |  次下載  |  免費

本月

  1. 1貼片三極管上的印字與真實名稱的對照表詳細說明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開發包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開發包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設計指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費
  15. 8蘋果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分
主站蜘蛛池模板: xx在线| 操美女在线看 | 成人亚洲综合 | 一级a毛片免费观看 | 特黄特色大片免费视频播放 | 天天干天天干天天色 | 美日韩毛片 | 日本免费一区二区三区视频 | 午夜影院免费 | 男人cao女人视频在线观看 | xvsr-365波多野结衣 | 噜噜噜色| 欧美 变态 另类 人妖班 | 日本有色视频 | www.夜夜操.com| 特级深夜a级毛片免费观看 特级生活片 | 日本黄色片免费看 | 四虎影院在线播放 | 午色| 4虎影院永久地址www | 日本网络视频www色高清免费 | 国产成人综合久久 | 男人日女人视频在线观看 | 综合婷婷丁香 | 丁香花在线视频 | 免费看黄视频的网站 | 国产做a爰片久久毛片a | 天堂国产| 又黄又湿又爽吸乳视频 | 妖精视频一区二区三区 | 人人洗澡人人洗澡人人 | 成人自拍视频 | 爱爱永久免费视频网站 | 九九国产在线 | 色婷婷成人网 | 黄色三级三级三级免费看 | 美女网站在线观看视频18 | 美国bj69| 拍拍拍交性免费视频 | 亚洲成人激情片 | 西西人体大胆午夜gog0 |