91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

資料介紹

授權(quán)協(xié)議 BSD
開發(fā)語言 PHP
軟件類型 開源軟件

軟件簡介

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

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

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

數(shù)據(jù)庫

如果多模塊的話,需要建立對應的用戶表、用戶分組表、用戶權(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 '手機號',
  `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 '連續(xù)登錄天數(shù)',
  `maxsuccessions` int(10) unsigned NOT NULL DEFAULT '1' COMMENT '最大連續(xù)登錄天數(shù)',
  `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 '失敗次數(shù)',
  `joinip` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '加入IP',
  `jointime` int(10) DEFAULT NULL COMMENT '加入時間',
  `createtime` int(10) DEFAULT NULL COMMENT '創(chuàng)建時間',
  `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 '狀態(tài)',
  `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 '權(quán)限節(jié)點',
  `createtime` int(10) DEFAULT NULL COMMENT '添加時間',
  `updatetime` int(10) DEFAULT NULL COMMENT '更新時間',
  `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='會員組表';

-- ----------------------------
-- 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 '創(chuàng)建時間',
  `updatetime` int(10) DEFAULT NULL COMMENT '更新時間',
  `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='會員規(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 '會員ID',
  `createtime` int(10) DEFAULT NULL COMMENT '創(chuàng)建時間',
  `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;

驅(qū)動和配置

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

token類的使用和功能

這里基本不會用到,主要用的是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的羈絆用法

基礎用法

              //登錄
              // $;
              // $; 
              //  $this->auth->login($username, $password);
              //   $this->auth->getUser()
              // $this->auth->getUserinfo()
              //讀取當前token
              // $this->auth->getToken()
              // 判斷是否登錄
              // $this->auth->isLogin()
              //獲取會員組別規(guī)則列表
              // $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()
              //檢測是否是否有對應權(quán)限
              // $this->auth-> check($path)
              //根據(jù)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的公共構(gòu)造方法使用 驗證權(quán)限

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

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

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

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

開源 PHP Real
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

評論

查看更多

下載排行

本周

  1. 1耗盡型MOS FET產(chǎn)品目錄選型表
  2. 0.14 MB   |  2次下載  |  免費
  3. 2TI系列-米爾TI AM62L核心板開發(fā)板-高能效低功耗嵌入式平臺
  4. 1.51 MB  |  次下載  |  免費
  5. 3WILLSEMI韋爾20年半年度報告由代理分銷經(jīng)銷一級代理分銷經(jīng)銷
  6. 3.30 MB  |  次下載  |  免費
  7. 4LRC 樂山無線電InTWSApplications家電由原廠代理分銷經(jīng)銷一級代理分銷經(jīng)銷供應
  8. 85.84 KB  |  次下載  |  免費
  9. 5LAT1596 一文說明白 STM32G4 雙 Bank 啟動與升級
  10. 0.64 MB   |  次下載  |  5 積分
  11. 6LAT1594_基于事件喚醒低功耗之介紹
  12. 0.37 MB   |  次下載  |  5 積分
  13. 7PT8P2309 觸控 A/D 型 8-Bit MCU規(guī)格書
  14. 4.05 MB   |  次下載  |  免費
  15. 8PT8P2308 觸控 A/D 型 8-Bit MCU規(guī)格書
  16. 4.13 MB   |  次下載  |  免費

本月

  1. 1美的電磁爐電路原理圖資料
  2. 4.39 MB   |  19次下載  |  10 積分
  3. 2反激式開關電源設計解析
  4. 0.89 MB   |  11次下載  |  5 積分
  5. 3耗盡型MOS FET產(chǎn)品目錄選型表
  6. 0.14 MB   |  2次下載  |  免費
  7. 4簡易光伏控制器原理圖資料
  8. 0.07 MB   |  1次下載  |  5 積分
  9. 52EDL05x06xx系列 600V半橋門驅(qū)動器帶集成自舉二極管(BSD)手冊
  10. 0.69 MB   |  1次下載  |  免費
  11. 6國產(chǎn)千兆網(wǎng)口芯片PT153S中文資料
  12. 1.35 MB   |  次下載  |  免費
  13. 7斯丹電子 | 用于芯片測試系統(tǒng)的射頻干簧繼電器
  14. 5.11 MB  |  次下載  |  免費
  15. 8SFI立昌ESD/TVS管原廠代理分銷經(jīng)銷一級代理分銷經(jīng)銷
  16. 294.76 KB  |  次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935137次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233095次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191448次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183360次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81605次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73829次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分