在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發燒友App

硬聲App

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

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

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

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

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

資料介紹

授權協議 BSD
開發語言 PHP
操作系統 跨平臺
軟件類型 開源軟件
所屬分類 Web應用開發、 單點登錄框架

軟件簡介

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

本月

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

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 免费看美女的逼| 亚洲国产视频网| 久久免费特黄毛片| 羞羞爱爱| 天天夜夜狠狠| 韩国床戏合集三小时hd中字| 天堂中文在线网| 特黄aaaaa日本大片免费看| 午夜看黄| 久久精品免费看| 午夜在线看片| www.男人的天堂| 黄色二级视频| 欧美a色| 四虎黄色影院| 亚洲欧美日韩国产一区二区三区精品| 深夜福利一区| 正在播放亚洲一区| 欧美交片| 1024 在线观看视频免费| 国产手机在线观看视频| 手机看片国产在线| 天天摸夜夜摸爽爽狠狠婷婷97| 在线免费色视频| 成人精品人成网站| 福利片免费一区二区三区| 韩国三级视频在线| 97影院理论在线观看| 成年人黄色免费网站| 成人sese| 日韩欧美理论| 欧美成人三级网站| 天天干视频网| 欧美成人三级网站| 91国内在线视频| 在线精品国产第一页| 在线播放ww| 熊出没之环球大冒险旧版免费观看 | 狠狠色丁香婷婷久久综合不卡| 伊人天天干| 最新sss华人|