| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | 
							- <?php
 
- // +----------------------------------------------------------------------
 
- // | ThinkPHP [ WE CAN DO IT JUST THINK ]
 
- // +----------------------------------------------------------------------
 
- // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
 
- // +----------------------------------------------------------------------
 
- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
 
- // +----------------------------------------------------------------------
 
- // | Author: liu21st <liu21st@gmail.com>
 
- // +----------------------------------------------------------------------
 
- namespace app\common\library\token;
 
- /**
 
-  * Token基础类
 
-  */
 
- abstract class Driver
 
- {
 
-     protected $handler = null;
 
-     protected $options = [];
 
-     /**
 
-      * 存储Token
 
-      * @param   string $token   Token
 
-      * @param   int    $user_id 会员ID
 
-      * @param   int    $expire  过期时长,0表示无限,单位秒
 
-      * @return bool
 
-      */
 
-     abstract function set($token, $user_id, $expire = 0);
 
-     /**
 
-      * 获取Token内的信息
 
-      * @param   string $token
 
-      * @return  array
 
-      */
 
-     abstract function get($token);
 
-     /**
 
-      * 判断Token是否可用
 
-      * @param   string $token   Token
 
-      * @param   int    $user_id 会员ID
 
-      * @return  boolean
 
-      */
 
-     abstract function check($token, $user_id);
 
-     /**
 
-      * 删除Token
 
-      * @param   string $token
 
-      * @return  boolean
 
-      */
 
-     abstract function delete($token);
 
-     /**
 
-      * 删除指定用户的所有Token
 
-      * @param   int $user_id
 
-      * @return  boolean
 
-      */
 
-     abstract function clear($user_id);
 
-     /**
 
-      * 返回句柄对象,可执行其它高级方法
 
-      *
 
-      * @access public
 
-      * @return object
 
-      */
 
-     public function handler()
 
-     {
 
-         return $this->handler;
 
-     }
 
-     /**
 
-      * 获取加密后的Token
 
-      * @param string $token Token标识
 
-      * @return string
 
-      */
 
-     protected function getEncryptedToken($token)
 
-     {
 
-         $config = \think\Config::get('token');
 
-         $token = $token ?? ''; // 为兼容 php8
 
-         return hash_hmac($config['hashalgo'], $token, $config['key']);
 
-     }
 
-     /**
 
-      * 获取过期剩余时长
 
-      * @param $expiretime
 
-      * @return float|int|mixed
 
-      */
 
-     protected function getExpiredIn($expiretime)
 
-     {
 
-         return $expiretime ? max(0, $expiretime - time()) : 365 * 86400;
 
-     }
 
- }
 
 
  |