diff --git a/app/admin/controller/Database.php b/app/admin/controller/Database.php new file mode 100644 index 0000000..aa3e70d --- /dev/null +++ b/app/admin/controller/Database.php @@ -0,0 +1,102 @@ +hostname = Config::get('database.connections.mysql.hostname'); + $this->hostport = Config::get('database.connections.mysql.hostport'); + $this->database = Config::get('database.connections.mysql.database'); + $this->username = Config::get('database.connections.mysql.username'); + $this->password = Config::get('database.connections.mysql.password'); + } + + public function index() + { + if(Request::isAjax()){ + $backName = Files::getDirName('../data'); + + $res['count'] = count($backName); + if($res['count']){ + $res['code'] = 0; + $res['msg'] = ''; + $res['data'] = []; + foreach($backName as $k=>$v){ + $res['data'][] = ['id' => $k, + 'time' => $v, + 'name' => $v, + ]; + } + + } else { + return json(['code'=>-1,'msg'=>'还没有数据']); + } + return json($res); + + } + + return View::fetch(); + } + + public function backup() + { + //halt(app()->getRootPath()); + //自行判断文件夹 + $backupdir = '../data'; + if (isset($_POST['backdir']) && $_POST['backdir'] != '') { + $backupdir = $_POST['backdir']; + } else { + $backupdir = app()->getRootPath() .'data/'. date('Ymdhis'); + //halt($backupdir); + } + + if (!is_dir($backupdir)) { + mkdir($backupdir, 0777, true); + } + + $backup = BackupFactory::instance('mysql', "$this->hostname:$this->hostport", $this->database, $this->username, $this->password); + $result = $backup->setbackdir($backupdir) + ->setvolsize(0.2) + ->setonlystructure(false) //设置是否只备份目录结构 + ->settablelist() //设置要备份的表, 默认全部表 + ->setstructuretable() + ->ajaxbackup($_POST); + + echo json_encode($result); + } + + + //下载 + public function down() + { + $id = input('id'); + var_dump($id); + } + + //删除备份文件夹 + public function delete() + { + $name = input('name'); + //var_dump($name); + $dir = app()->getRootPath() .'data/'.$name; + + $res = Files::delDir($dir); + + if($res){ + return json(['code'=>0,'msg'=>'删除成功']); + } else { + return json(['code'=>-1,'msg'=>'删除失败']); + } + } + +} diff --git a/app/admin/middleware.php b/app/admin/middleware.php index bdf6ca9..9ad00c9 100644 --- a/app/admin/middleware.php +++ b/app/admin/middleware.php @@ -3,4 +3,5 @@ return [ app\middleware\Auth::class, //'logedcheck' => \app\middleware\logedCheck::class, + app\middleware\AdminLoginCookie::class, ]; \ No newline at end of file diff --git a/app/admin/model/Admin.php b/app/admin/model/Admin.php index 98c103e..bf0892e 100644 --- a/app/admin/model/Admin.php +++ b/app/admin/model/Admin.php @@ -5,6 +5,9 @@ namespace app\admin\model; use think\Model; use think\facade\Db; use think\facade\Session; +use app\oil\model\Station; +use think\facade\Cookie; +use think\facade\Config; use think\model\concern\SoftDelete; class Admin extends Model @@ -21,6 +24,11 @@ class Admin extends Model return $this->belongsTo('AuthGroup','auth_group_id','id'); } */ + //管理员关联站点 + public function station() + { + return $this->belongsTo(Station::class); + } //远程一对多管理员关联角色 public function adminGroup() @@ -30,12 +38,12 @@ class Admin extends Model //管理员关联角色分配表 public function authGroupAccess() { - return $this->hasMany('AuthGroupAccess','uid','id'); + return $this->hasMany(AuthGroupAccess::class,'uid'); } //登陆校验 public function login($data) - { + { //查询用户 $admin = Db::name('admin')->where('username',$data['username'])->where('delete_time',0)->find(); @@ -51,13 +59,20 @@ class Admin extends Model //将用户数据写入Session Session::set('admin_id',$admin['id']); Session::set('admin_name',$admin['username']); + + if(isset($data['remember'])){ + $salt = Config::get('taoler.salt'); + //加密auth存入cookie + $auth = md5($admin['username'].$salt).":".$admin['id']; + Cookie::set('adminAuth',$auth,604800); + } Db::name('admin')->where('id',$admin['id'])->update( [ 'last_login_time' => time(), 'last_login_ip' => request()->ip(), ] - ); + ); //用户名密码正确返回1 return 1; diff --git a/app/admin/view/database/index.html b/app/admin/view/database/index.html new file mode 100644 index 0000000..5f19b49 --- /dev/null +++ b/app/admin/view/database/index.html @@ -0,0 +1,218 @@ +{extend name="public:base" /} + +{block name="body"} +
TaoLer后台管理系统
+TaoilSys油站管理系统-专业版
thinkphp5.1+layui2.4+fly3.0
TBLs0.1
', '1584870099', '1584870099', '0'); +INSERT INTO `tao_time_line` VALUES ('9', '2019年5月5日', '创建数据表结构,
建立前台框架,
构建用户端html;
登录,注册,密码找回。
', '1584871136', '1584871136', '0'); +INSERT INTO `tao_time_line` VALUES ('10', '2019年5月10日', '[新增] 注册模块,进行动态密码双重加密
[新增]登录模块,加入validata验证
[新增]密码找回
[安装]phpmailer插件
[优化]验证码captcha
', '1584871314', '1584871314', '0'); +INSERT INTO `tao_time_line` VALUES ('11', '2019年5月15日', '[优化] 注册模块,邮箱用户名多态登录
[优化]密码找回,更新验证码
', '1584871602', '1584871602', '0'); +INSERT INTO `tao_time_line` VALUES ('12', '2019年5月25日', '[新增]文章添加,编辑,删除
[新增]首页,分类,详情
[新增]回帖
[优化]多态登录
[优化]邮件首发验证码
', '1585208263', '1585208263', '0'); +INSERT INTO `tao_time_line` VALUES ('13', '2019年6月1日', '[新增]右栏各模块
[新增]签到
[优化]帖子发布
[更新]layui2.5
', '1585208481', '1585208481', '0'); +INSERT INTO `tao_time_line` VALUES ('14', '2019年6月10日', '[优化]前台分类导航选择
[优化]前台分类筛选选择
[优化]cate控制
[修复]未登录状态点文章发布跳转
', '1585208796', '1585208796', '0'); +INSERT INTO `tao_time_line` VALUES ('15', '2019年6月20日', '[新增]后台模版的更换
[新增]账户管理
', '1585209047', '1585209047', '0'); +INSERT INTO `tao_time_line` VALUES ('16', '2019年7月5日', '[新增]内容的管理模块
[新增]设置管理模块
[修复]前台用户页面bug
', '1585209329', '1585209329', '0'); +INSERT INTO `tao_time_line` VALUES ('17', '2019年7月25日', '[新增]应用模块,系统升级,版本发布,授权管理等
[更新]layui2.5.5
[修复]授权前后台
[修复]前台版本升级系统的检测
[修复]权限控制
[修复]角色管理
[优化]网站设置Logo保存
[优化]前台注册在一些信息
[更新] 升级Thinkphp6框架为正式版
[优化] 各查询条件相关优化
', '1585210342', '1585210342', '0'); +INSERT INTO `tao_time_line` VALUES ('23', '2019年11月5日', '[优化] 后台多模块功能的优化
[新增] 后台多个功能的增加
', '1585210449', '1585210449', '0'); +INSERT INTO `tao_time_line` VALUES ('24', '2019年11月20日', '[新增]广告管理
[优化]幻灯和广告合并
[修复] 账户密码,基本资料设置
', '1585210712', '1585210712', '0'); +INSERT INTO `tao_time_line` VALUES ('25', '2019年12月5日', '[新增] 安装引导程序
[优化] 数据库表
[优化] 后台数个页面的优化和新增
', '1585210905', '1585210905', '0'); +INSERT INTO `tao_time_line` VALUES ('26', '2019年12月15日', '[修复] 修复多数已知问题
[修复] 转移测试平台
', '1585211052', '1585211052', '0'); +INSERT INTO `tao_time_line` VALUES ('27', '2019年12月30日', '[修复] 安装引导文件的修复
[新增] 发布测试版本前的准备
[新增] 系统的介绍
', '1585211146', '1585211146', '0'); +INSERT INTO `tao_time_line` VALUES ('28', '2020年1月1日 Beat 1.0', '[新增] 发布1.0测试版本,命名TaoLer。', '1585211259', '1585211259', '0'); +INSERT INTO `tao_time_line` VALUES ('29', '2020年1月1-31日', '[修复] 数个问题修复和完善
', '1585211340', '1585211340', '0'); +INSERT INTO `tao_time_line` VALUES ('30', '2020年2月1-29日', '[新增] 帖子tags
[优化] 帖子文章的SEO
[新增] auth模块发布至github
[更新] auth权限管理插件
[修复] 引导文件的数据库配置
[修复] 授权在某些服务器的获取
[修复] 文件上传
', '1585211685', '1585211685', '0'); +INSERT INTO `tao_time_line` VALUES ('31', '2020年3月10', '[优化] 帖子,分类各类缓存,数据库查询,性能优化等
[优化] 前台超级管理员权限的分配
[修复] 编辑帖子,发帖人改变的bug
[新增] 插件管理模块
[新增] 登录日志文件,浏览帖子日志
', '1585212061', '1585212061', '0'); +INSERT INTO `tao_time_line` VALUES ('32', '2020年3月20', '[新增] 版本更新日志线
[修复] 前台会员页面展示
[优化] 多个页面的缓存
[优化] 前台用户授权页面
', '1585212188', '1585212188', '0'); +INSERT INTO `tao_time_line` VALUES ('33', '2020年3月26', '[新增] 站内信消息模块
[新增] 用户后台签到模块
[新增] 积分等级后台设置
[优化] 消息通知功能
', '1585484428', '1585484428', '0'); +INSERT INTO `tao_time_line` VALUES ('35', '2020年3月30', '[新增] VIP模块
[优化] 优化签到积分规则
[修复] 权限规则
', '1585577995', '1585577995', '0'); +INSERT INTO `tao_time_line` VALUES ('36', 'TaoLer V1.0.0正式版', '[新增] 后台消息管理模块,发全站内信,单独推送用户消息
[优化] 前台用户系统消息和接收系统消息
[版本] 框架基本定型,推送1.0正式版,其它待优化事项逐步完成
', '1585669343', '1585669343', '0'); +INSERT INTO `tao_time_line` VALUES ('37', '222', '222', '1585752242', '1585752256', '1585752256'); +INSERT INTO `tao_time_line` VALUES ('38', '111', '1111', '1585754796', '1585754830', '1585754830'); +INSERT INTO `tao_time_line` VALUES ('39', 'TaoLer V1.1.0', '[修复] 后台权限控制更加仔细,权限,角色,用户组分配三级设置
[修复] 移除管理员的角色直接分配
[新增] 后台分类的热点的单选设置选项
[新增] 添加数据库auth_group_access id字段,可以更改用户的编辑操作
[新增] 权限控制菜单和按钮规则的添加
[优化] 站内信后台通知和前台之间的系统通知和用户通知的读取
', '1585898118', '1585898118', '0'); +INSERT INTO `tao_time_line` VALUES ('40', 'qqq', 'qqqqqq', '1588050588', '1605504731', '1605504731'); +INSERT INTO `tao_time_line` VALUES ('41', 'ddd', 'dddd', '1605507216', '1605507216', '0'); + +-- ---------------------------- +-- Table structure for tao_upgrade_auth +-- ---------------------------- +DROP TABLE IF EXISTS `tao_upgrade_auth`; +CREATE TABLE `tao_upgrade_auth` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id', + `user` varchar(20) NOT NULL COMMENT '用户', + `domain` varchar(30) NOT NULL COMMENT '域名', + `key` varchar(60) NOT NULL COMMENT '授权秘钥', + `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态', + `auth_level` tinyint(1) NOT NULL DEFAULT '0' COMMENT '授权等级0无授权1初级2中级3高级', + `end_time` int(11) NOT NULL DEFAULT '0' COMMENT '结束时间', + `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', + `update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间', + `delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=23 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_upgrade_auth +-- ---------------------------- +INSERT INTO `tao_upgrade_auth` VALUES ('1', 'admin', 'http://www.tp6.com', '9ee40f0c4f5c8f2f10b06ae2e1ddda96ac709c4a', '1', '0', '0', '0', '0', '0'); +INSERT INTO `tao_upgrade_auth` VALUES ('2', 'tao', 'http://www.tp6.com', '123456', '1', '1', '1577721600', '0', '1577172802', '1577172802'); +INSERT INTO `tao_upgrade_auth` VALUES ('3', 'admin', 'https://www.tp.com', 'e49183beee30d0b463fbf415d63cce3908d95599', '1', '0', '0', '1576835663', '1583765865', '1583765865'); +INSERT INTO `tao_upgrade_auth` VALUES ('4', 'admin', 'https://www.tp6.com', '9ee40f0c4f5c8f2f10b06ae2e1ddda96ac709c4a', '1', '1', '0', '1576835915', '1576835915', '0'); +INSERT INTO `tao_upgrade_auth` VALUES ('5', 'admin', 'http://www.baidu.com', 'fd27553322b3ed27ff7114b1c540901d36ac1ef8', '1', '0', '0', '1576836110', '1576836110', '0'); +INSERT INTO `tao_upgrade_auth` VALUES ('6', 'admin', 'https://www.taobao.com', 'b5d63bc7ae0d86c4d4019e2aea8d828f06818cc7', '1', '1', '0', '1576836142', '1583765908', '1583765908'); +INSERT INTO `tao_upgrade_auth` VALUES ('7', 'admin', 'http://www.taobao.com', '4931b81d82673528828d2fd64a0414e8925c9221', '1', '0', '0', '1576836211', '1583765821', '1583765821'); +INSERT INTO `tao_upgrade_auth` VALUES ('8', 'admin', 'http://qianniu.com', '0106c5c4f8e0a1d97745353bee6201783d481ac2', '1', '1', '0', '1576836529', '1583765837', '1583765837'); +INSERT INTO `tao_upgrade_auth` VALUES ('9', 'admin', 'http://baidu.com', '4ce7a1d87218353d09081a291f38ddb290b0630b', '1', '0', '0', '1576836712', '1583765886', '1583765886'); +INSERT INTO `tao_upgrade_auth` VALUES ('10', 'zhao', 'http://tao.tp6.com', '374f2e2a63f1201924a07561095cd078acae238b', '1', '1', '0', '1576837200', '1576837200', '0'); +INSERT INTO `tao_upgrade_auth` VALUES ('11', 'ZhiQ', 'http://www.hicheng.cn', '20b32d07aa9c2fb24afed0bf72f420144928fd22', '1', '0', '0', '1579012640', '1579012640', '0'); +INSERT INTO `tao_upgrade_auth` VALUES ('12', 'ZhiQ', 'https://www.hicheng.cn', '9a2e0b92f54238760c48d6021adba6e20c9ede0a', '1', '0', '0', '1579012652', '1579012652', '0'); +INSERT INTO `tao_upgrade_auth` VALUES ('13', 'lingkur', 'http://demo.biudj.com', '15eacf288cc4e8a1a9b69da3338607d0710b8cd1', '1', '0', '0', '1579455284', '1579455284', '0'); +INSERT INTO `tao_upgrade_auth` VALUES ('14', '云飞', 'https://www.cqtl520.com', 'db88afaedaacc1cabc15013dd3ea5f412f6086c9', '1', '0', '0', '1579665257', '1579665257', '0'); +INSERT INTO `tao_upgrade_auth` VALUES ('15', '123', 'http://http://www.aieok.com/', '13971a9975a4e4eb9827a01767a2796c68e03b69', '1', '0', '0', '1583659119', '1583659119', '0'); +INSERT INTO `tao_upgrade_auth` VALUES ('16', '22553456', 'http://www.srsn.com', 'fb86db60328ada7c0180a3f32765777dc4250a7f', '1', '0', '0', '1584153862', '1584153862', '0'); +INSERT INTO `tao_upgrade_auth` VALUES ('17', 'maqiang', 'https://www.wujiangpu.com', 'b4c22df2a87ecd0524b90cf8d56eeadeba58a8a1', '1', '0', '0', '1584278073', '1584278073', '0'); +INSERT INTO `tao_upgrade_auth` VALUES ('18', 'admin', 'https://www.igoke.cn', '8e8a3c05508f853fb06e3d5accd927d949194971', '1', '0', '0', '1585382531', '1590487273', '1590487273'); +INSERT INTO `tao_upgrade_auth` VALUES ('19', 'tt', 'http://www.tt.com', 'ff9f48057c831cb5db3af907b799b754f0499050', '1', '0', '2020', '1590486647', '1590487269', '1590487269'); +INSERT INTO `tao_upgrade_auth` VALUES ('20', 'dfdf', 'http://wwerw.com', '1675905f7042fcdbca2c2de43ba79827ee62631f', '1', '0', '2020', '1590486715', '1590486715', '0'); +INSERT INTO `tao_upgrade_auth` VALUES ('21', 'fdfdf', 'dfdfdsf', 'cb71fef668253fe6b2761f10500af9440acdcd8d', '1', '0', '2020', '1590486752', '1590487269', '1590487269'); +INSERT INTO `tao_upgrade_auth` VALUES ('22', 'fdfdf', 'http://wwwe.com', '1db68d6d7d0cb9fd44ad51e22611680f3aa26a7d', '1', '0', '1590854400', '1590486950', '1590486950', '0'); -- ---------------------------- -- Table structure for tao_user @@ -569,6 +763,30 @@ CREATE TABLE `tao_user_zan` ( -- Records of tao_user_zan -- ---------------------------- +-- ---------------------------- +-- Table structure for tao_version +-- ---------------------------- +DROP TABLE IF EXISTS `tao_version`; +CREATE TABLE `tao_version` ( + `id` int(5) unsigned NOT NULL AUTO_INCREMENT, + `version_name` varchar(20) NOT NULL COMMENT '版本名称', + `version_src` varchar(70) NOT NULL DEFAULT '' COMMENT '版本文件路径', + `version_resume` varchar(255) NOT NULL DEFAULT '' COMMENT '简介', + `version_status` enum('0','1') NOT NULL DEFAULT '1' COMMENT '1开启0禁止', + `create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', + `update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间', + `delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间', + PRIMARY KEY (`id`) +) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Records of tao_version +-- ---------------------------- +INSERT INTO `tao_version` VALUES ('1', '1.1.1', '/storage/version/20191215/536c65fc4df42100016fa3d97b584d26.zip', '第1个版本', '1', '1575862901', '0', '1575864587'); +INSERT INTO `tao_version` VALUES ('2', '1.1.2', '/storage/version/20191215/832e150dfbc0e88e04a408e475bce8bb.zip', '第2个版本', '1', '1575862901', '0', '1575864587'); +INSERT INTO `tao_version` VALUES ('3', '1.1.3', '/storage/version/20191215/9ff1153045f1ad1e26c74aad148bdde3.zip', '第3个版本', '1', '1575862901', '1575862901', '1575864587'); +INSERT INTO `tao_version` VALUES ('4', '1.1.4', '/storage/version/20191209/1fae8a15fcd41181490a0c02e0218ef1.zip', '第四个版本', '1', '1575864450', '1575864587', '1575864587'); + -- ---------------------------- -- Table structure for tao_webconfig -- ---------------------------- diff --git a/app/middleware/AdminLoginCookie.php b/app/middleware/AdminLoginCookie.php new file mode 100644 index 0000000..9133938 --- /dev/null +++ b/app/middleware/AdminLoginCookie.php @@ -0,0 +1,33 @@ +where('id',$userId)->find(); + if(!is_null($user)){ + //验证cookie + $salt = Config::get('taoler.salt'); + $auth = md5($user['username'].$salt).":".$userId; + if($auth==$cooAuth){ + Session::set('admin_name',$user['username']); + Session::set('admin_id',$userId); + } + } + + } + return $next($request); + } +} diff --git a/app/middleware/Auth.php b/app/middleware/Auth.php index e91e824..f9dab34 100644 --- a/app/middleware/Auth.php +++ b/app/middleware/Auth.php @@ -31,7 +31,7 @@ class Auth } // 排除公共权限 - $not_check = ['admin/login/index','admin/index/index','admin/index/home','admin/Set/info','admin/Set/password','admin/Admin/logout','admin/captcha']; + $not_check = ['admin/','admin/login/index','admin/index/index','admin/index/home','admin/Admin/info','admin/Admin/repass','admin/Admin/logout','admin/captcha']; if (!in_array($path, $not_check)) { $auth = new UserAuth(); @@ -39,8 +39,6 @@ class Auth if (!$auth->check($path, $admin_id) && $admin_id != 1) { return view('public/auth'); - //return json(['status'=>-1,'msg'=>'没有权限!']); - //return response(""); } } return $next($request); diff --git a/composer.json b/composer.json index 86707a1..2bf5ae8 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,8 @@ "topthink/think-captcha": "^3.0", "phpmailer/phpmailer": "^6.1", "zzstudio/think-addons": "^2.0", - "firebase/php-jwt": "^5.2" + "firebase/php-jwt": "^5.2", + "lotofbadcode/phpspirit_databackup": "^1.1" }, "require-dev": { "symfony/var-dumper": "^4.2", diff --git a/composer.lock b/composer.lock index 4b9f480..3203907 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,68 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "670826f4ed6fc63b8b224456dd1826d9", + "content-hash": "f4ac487289cab0dba8660f5759f64a21", "packages": [ + { + "name": "firebase/php-jwt", + "version": "v5.2.0", + "source": { + "type": "git", + "url": "https://github.com/firebase/php-jwt.git", + "reference": "feb0e820b8436873675fd3aca04f3728eb2185cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/feb0e820b8436873675fd3aca04f3728eb2185cb", + "reference": "feb0e820b8436873675fd3aca04f3728eb2185cb", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": ">=4.8 <=9" + }, + "type": "library", + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "keywords": [ + "jwt", + "php" + ], + "support": { + "issues": "https://github.com/firebase/php-jwt/issues", + "source": "https://github.com/firebase/php-jwt/tree/master" + }, + "time": "2020-03-25T18:49:23+00:00" + }, { "name": "league/flysystem", "version": "1.1.3", @@ -166,16 +226,16 @@ }, { "name": "league/mime-type-detection", - "version": "1.5.1", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "353f66d7555d8a90781f6f5e7091932f9a4250aa" + "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/353f66d7555d8a90781f6f5e7091932f9a4250aa", - "reference": "353f66d7555d8a90781f6f5e7091932f9a4250aa", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", + "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", "shasum": "", "mirrors": [ { @@ -189,8 +249,9 @@ "php": "^7.2 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.36", - "phpunit/phpunit": "^8.5.8" + "friendsofphp/php-cs-fixer": "^2.18", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3" }, "type": "library", "autoload": { @@ -211,7 +272,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.5.1" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.7.0" }, "funding": [ { @@ -223,20 +284,70 @@ "type": "tidelift" } ], - "time": "2020-10-18T11:50:25+00:00" + "time": "2021-01-18T20:58:21+00:00" }, { - "name": "phpmailer/phpmailer", - "version": "v6.1.7", + "name": "lotofbadcode/phpspirit_databackup", + "version": "v1.1", "source": { "type": "git", - "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "2c2370ba3df7034f9eb7b8f387c97b52b2ba5ad0" + "url": "https://github.com/lotofbadcode/phpspirit_databackup.git", + "reference": "2627b2e4206031731c94c8d637fb06b3b96e8860" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/2c2370ba3df7034f9eb7b8f387c97b52b2ba5ad0", - "reference": "2c2370ba3df7034f9eb7b8f387c97b52b2ba5ad0", + "url": "https://api.github.com/repos/lotofbadcode/phpspirit_databackup/zipball/2627b2e4206031731c94c8d637fb06b3b96e8860", + "reference": "2627b2e4206031731c94c8d637fb06b3b96e8860", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "phpspirit\\databackup\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "代码庸医", + "email": "3359964266@qq.com" + } + ], + "description": "一个PHP数据库备份恢复的插件", + "keywords": [ + "library", + "php" + ], + "support": { + "issues": "https://github.com/lotofbadcode/phpspirit_databackup/issues", + "source": "https://github.com/lotofbadcode/phpspirit_databackup/tree/v1.1" + }, + "time": "2020-10-18T08:14:55+00:00" + }, + { + "name": "phpmailer/phpmailer", + "version": "v6.2.0", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "e38888a75c070304ca5514197d4847a59a5c853f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e38888a75c070304ca5514197d4847a59a5c853f", + "reference": "e38888a75c070304ca5514197d4847a59a5c853f", "shasum": "", "mirrors": [ { @@ -248,12 +359,16 @@ "require": { "ext-ctype": "*", "ext-filter": "*", + "ext-hash": "*", "php": ">=5.5.0" }, "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", "doctrine/annotations": "^1.2", - "friendsofphp/php-cs-fixer": "^2.2", - "phpunit/phpunit": "^4.8 || ^5.7" + "phpcompatibility/php-compatibility": "^9.3.5", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "^3.5.6", + "yoast/phpunit-polyfills": "^0.2.0" }, "suggest": { "ext-mbstring": "Needed to send email in multibyte encoding charset", @@ -293,15 +408,15 @@ "description": "PHPMailer is a full-featured email creation and transfer class for PHP", "support": { "issues": "https://github.com/PHPMailer/PHPMailer/issues", - "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.1.7" + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.2.0" }, "funding": [ { - "url": "https://github.com/synchro", + "url": "https://github.com/Synchro", "type": "github" } ], - "time": "2020-07-14T18:50:27+00:00" + "time": "2020-11-25T15:24:57+00:00" }, { "name": "psr/cache", @@ -591,16 +706,16 @@ }, { "name": "topthink/framework", - "version": "v6.0.5", + "version": "v6.0.7", "source": { "type": "git", "url": "https://github.com/top-think/framework.git", - "reference": "85625d984f5c96699dc27d384869f206c3aec1cc" + "reference": "db8fe22520a9660dd5e4c87e304034ac49e39270" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/top-think/framework/zipball/85625d984f5c96699dc27d384869f206c3aec1cc", - "reference": "85625d984f5c96699dc27d384869f206c3aec1cc", + "url": "https://api.github.com/repos/top-think/framework/zipball/db8fe22520a9660dd5e4c87e304034ac49e39270", + "reference": "db8fe22520a9660dd5e4c87e304034ac49e39270", "shasum": "", "mirrors": [ { @@ -656,9 +771,9 @@ ], "support": { "issues": "https://github.com/top-think/framework/issues", - "source": "https://github.com/top-think/framework/tree/v6.0.5" + "source": "https://github.com/top-think/framework/tree/v6.0.7" }, - "time": "2020-10-26T07:18:00+00:00" + "time": "2021-01-25T14:48:29+00:00" }, { "name": "topthink/think-captcha", @@ -824,16 +939,16 @@ }, { "name": "topthink/think-orm", - "version": "v2.0.34", + "version": "v2.0.36", "source": { "type": "git", "url": "https://github.com/top-think/think-orm.git", - "reference": "57f9b98895b0ff4ae7b7b75e51456fd8cb8fb629" + "reference": "f48dc09050f25029d41a66bfc9c3c403e4f82024" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/top-think/think-orm/zipball/57f9b98895b0ff4ae7b7b75e51456fd8cb8fb629", - "reference": "57f9b98895b0ff4ae7b7b75e51456fd8cb8fb629", + "url": "https://api.github.com/repos/top-think/think-orm/zipball/f48dc09050f25029d41a66bfc9c3c403e4f82024", + "reference": "f48dc09050f25029d41a66bfc9c3c403e4f82024", "shasum": "", "mirrors": [ { @@ -873,22 +988,22 @@ ], "support": { "issues": "https://github.com/top-think/think-orm/issues", - "source": "https://github.com/top-think/think-orm/tree/v2.0.34" + "source": "https://github.com/top-think/think-orm/tree/v2.0.36" }, - "time": "2020-09-28T08:24:57+00:00" + "time": "2021-01-12T09:08:52+00:00" }, { "name": "topthink/think-template", - "version": "v2.0.7", + "version": "v2.0.8", "source": { "type": "git", "url": "https://github.com/top-think/think-template.git", - "reference": "e98bdbb4a4c94b442f17dfceba81e0134d4fbd19" + "reference": "abfc293f74f9ef5127b5c416310a01fe42e59368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/top-think/think-template/zipball/e98bdbb4a4c94b442f17dfceba81e0134d4fbd19", - "reference": "e98bdbb4a4c94b442f17dfceba81e0134d4fbd19", + "url": "https://api.github.com/repos/top-think/think-template/zipball/abfc293f74f9ef5127b5c416310a01fe42e59368", + "reference": "abfc293f74f9ef5127b5c416310a01fe42e59368", "shasum": "", "mirrors": [ { @@ -920,9 +1035,9 @@ "description": "the php template engine", "support": { "issues": "https://github.com/top-think/think-template/issues", - "source": "https://github.com/top-think/think-template/tree/v2.0.7" + "source": "https://github.com/top-think/think-template/tree/v2.0.8" }, - "time": "2019-09-20T15:31:04+00:00" + "time": "2020-12-10T07:52:03+00:00" }, { "name": "topthink/think-view", @@ -1037,16 +1152,16 @@ "packages-dev": [ { "name": "symfony/polyfill-mbstring", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "39d483bdf39be819deabf04ec872eb0b2410b531" + "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", - "reference": "39d483bdf39be819deabf04ec872eb0b2410b531", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", + "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", "shasum": "", "mirrors": [ { @@ -1064,7 +1179,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1103,7 +1218,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.0" }, "funding": [ { @@ -1119,20 +1234,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930" + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930", - "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", "shasum": "", "mirrors": [ { @@ -1147,7 +1262,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1185,7 +1300,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.0" }, "funding": [ { @@ -1201,20 +1316,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", "shasum": "", "mirrors": [ { @@ -1229,7 +1344,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1274,7 +1389,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.0" }, "funding": [ { @@ -1290,20 +1405,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/var-dumper", - "version": "v4.4.16", + "version": "v4.4.19", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "3718e18b68d955348ad860e505991802c09f5f73" + "reference": "a1eab2f69906dc83c5ddba4632180260d0ab4f7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3718e18b68d955348ad860e505991802c09f5f73", - "reference": "3718e18b68d955348ad860e505991802c09f5f73", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a1eab2f69906dc83c5ddba4632180260d0ab4f7f", + "reference": "a1eab2f69906dc83c5ddba4632180260d0ab4f7f", "shasum": "", "mirrors": [ { @@ -1326,7 +1441,7 @@ "ext-iconv": "*", "symfony/console": "^3.4|^4.0|^5.0", "symfony/process": "^4.4|^5.0", - "twig/twig": "^1.34|^2.4|^3.0" + "twig/twig": "^1.43|^2.13|^3.0.4" }, "suggest": { "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", @@ -1362,14 +1477,14 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony mechanism for exploring and dumping PHP variables", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", "homepage": "https://symfony.com", "keywords": [ "debug", "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v4.4.16" + "source": "https://github.com/symfony/var-dumper/tree/v4.4.19" }, "funding": [ { @@ -1385,7 +1500,7 @@ "type": "tidelift" } ], - "time": "2020-10-26T20:47:51+00:00" + "time": "2021-01-27T09:09:26+00:00" }, { "name": "topthink/think-trace", diff --git a/config/app.php b/config/app.php index 59cb4df..e2ea10b 100644 --- a/config/app.php +++ b/config/app.php @@ -33,7 +33,7 @@ return [ // 错误显示信息,非调试模式有效 'error_message' => '页面错误!请稍后再试~', // 显示错误信息 - 'show_error_msg' => true, + 'show_error_msg' => false, //异常页面模板 'http_exception_template' => [ 404 => '../view/404.html', diff --git a/config/taoler.php b/config/taoler.php index 7059f5a..ba5679b 100644 --- a/config/taoler.php +++ b/config/taoler.php @@ -5,6 +5,6 @@ return [ //版本配置 - 'version' => '1.6.5', + 'version' => '1.6.6', 'salt' => 'taoler' ]; \ No newline at end of file diff --git a/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php index 6b73fe7..67b4f4a 100644 --- a/vendor/composer/InstalledVersions.php +++ b/vendor/composer/InstalledVersions.php @@ -20,10 +20,19 @@ private static $installed = array ( array ( ), 'reference' => NULL, - 'name' => 'topthink/think', + 'name' => 'taoser/taoler', ), 'versions' => array ( + 'firebase/php-jwt' => + array ( + 'pretty_version' => 'v5.2.0', + 'version' => '5.2.0.0', + 'aliases' => + array ( + ), + 'reference' => 'feb0e820b8436873675fd3aca04f3728eb2185cb', + ), 'league/flysystem' => array ( 'pretty_version' => '1.1.3', @@ -44,21 +53,30 @@ private static $installed = array ( ), 'league/mime-type-detection' => array ( - 'pretty_version' => '1.5.1', - 'version' => '1.5.1.0', + 'pretty_version' => '1.7.0', + 'version' => '1.7.0.0', 'aliases' => array ( ), - 'reference' => '353f66d7555d8a90781f6f5e7091932f9a4250aa', + 'reference' => '3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3', + ), + 'lotofbadcode/phpspirit_databackup' => + array ( + 'pretty_version' => 'v1.1', + 'version' => '1.1.0.0', + 'aliases' => + array ( + ), + 'reference' => '2627b2e4206031731c94c8d637fb06b3b96e8860', ), 'phpmailer/phpmailer' => array ( - 'pretty_version' => 'v6.1.7', - 'version' => '6.1.7.0', + 'pretty_version' => 'v6.2.0', + 'version' => '6.2.0.0', 'aliases' => array ( ), - 'reference' => '2c2370ba3df7034f9eb7b8f387c97b52b2ba5ad0', + 'reference' => 'e38888a75c070304ca5514197d4847a59a5c853f', ), 'psr/cache' => array ( @@ -98,39 +116,48 @@ private static $installed = array ( ), 'symfony/polyfill-mbstring' => array ( - 'pretty_version' => 'v1.20.0', - 'version' => '1.20.0.0', + 'pretty_version' => 'v1.22.0', + 'version' => '1.22.0.0', 'aliases' => array ( ), - 'reference' => '39d483bdf39be819deabf04ec872eb0b2410b531', + 'reference' => 'f377a3dd1fde44d37b9831d68dc8dea3ffd28e13', ), 'symfony/polyfill-php72' => array ( - 'pretty_version' => 'v1.20.0', - 'version' => '1.20.0.0', + 'pretty_version' => 'v1.22.0', + 'version' => '1.22.0.0', 'aliases' => array ( ), - 'reference' => 'cede45fcdfabdd6043b3592e83678e42ec69e930', + 'reference' => 'cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9', ), 'symfony/polyfill-php80' => array ( - 'pretty_version' => 'v1.20.0', - 'version' => '1.20.0.0', + 'pretty_version' => 'v1.22.0', + 'version' => '1.22.0.0', 'aliases' => array ( ), - 'reference' => 'e70aa8b064c5b72d3df2abd5ab1e90464ad009de', + 'reference' => 'dc3063ba22c2a1fd2f45ed856374d79114998f91', ), 'symfony/var-dumper' => array ( - 'pretty_version' => 'v4.4.16', - 'version' => '4.4.16.0', + 'pretty_version' => 'v4.4.19', + 'version' => '4.4.19.0', 'aliases' => array ( ), - 'reference' => '3718e18b68d955348ad860e505991802c09f5f73', + 'reference' => 'a1eab2f69906dc83c5ddba4632180260d0ab4f7f', + ), + 'taoser/taoler' => + array ( + 'pretty_version' => '1.0.0+no-version-set', + 'version' => '1.0.0.0', + 'aliases' => + array ( + ), + 'reference' => NULL, ), 'taoser/think-auth' => array ( @@ -143,21 +170,12 @@ private static $installed = array ( ), 'topthink/framework' => array ( - 'pretty_version' => 'v6.0.5', - 'version' => '6.0.5.0', + 'pretty_version' => 'v6.0.7', + 'version' => '6.0.7.0', 'aliases' => array ( ), - 'reference' => '85625d984f5c96699dc27d384869f206c3aec1cc', - ), - 'topthink/think' => - array ( - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', - 'aliases' => - array ( - ), - 'reference' => NULL, + 'reference' => 'db8fe22520a9660dd5e4c87e304034ac49e39270', ), 'topthink/think-captcha' => array ( @@ -188,21 +206,21 @@ private static $installed = array ( ), 'topthink/think-orm' => array ( - 'pretty_version' => 'v2.0.34', - 'version' => '2.0.34.0', + 'pretty_version' => 'v2.0.36', + 'version' => '2.0.36.0', 'aliases' => array ( ), - 'reference' => '57f9b98895b0ff4ae7b7b75e51456fd8cb8fb629', + 'reference' => 'f48dc09050f25029d41a66bfc9c3c403e4f82024', ), 'topthink/think-template' => array ( - 'pretty_version' => 'v2.0.7', - 'version' => '2.0.7.0', + 'pretty_version' => 'v2.0.8', + 'version' => '2.0.8.0', 'aliases' => array ( ), - 'reference' => 'e98bdbb4a4c94b442f17dfceba81e0134d4fbd19', + 'reference' => 'abfc293f74f9ef5127b5c416310a01fe42e59368', ), 'topthink/think-trace' => array ( diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 99613f4..7f438f8 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -12,6 +12,7 @@ return array( 'think\\app\\' => array($vendorDir . '/topthink/think-multi-app/src'), 'think\\' => array($vendorDir . '/topthink/framework/src/think', $vendorDir . '/topthink/think-helper/src', $vendorDir . '/topthink/think-orm/src', $vendorDir . '/topthink/think-template/src', $vendorDir . '/zzstudio/think-addons/src'), 'taoser\\think\\' => array($vendorDir . '/taoser/think-auth/src'), + 'phpspirit\\databackup\\' => array($vendorDir . '/lotofbadcode/phpspirit_databackup/src'), 'app\\' => array($baseDir . '/app'), 'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'), 'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'), @@ -25,4 +26,5 @@ return array( 'League\\MimeTypeDetection\\' => array($vendorDir . '/league/mime-type-detection/src'), 'League\\Flysystem\\Cached\\' => array($vendorDir . '/league/flysystem-cached-adapter/src'), 'League\\Flysystem\\' => array($vendorDir . '/league/flysystem/src'), + 'Firebase\\JWT\\' => array($vendorDir . '/firebase/php-jwt/src'), ); diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 55563df..85e2522 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -26,6 +26,10 @@ class ComposerStaticInit1b32198725235c8d6500c87262ef30c2 'think\\' => 6, 'taoser\\think\\' => 13, ), + 'p' => + array ( + 'phpspirit\\databackup\\' => 21, + ), 'a' => array ( 'app\\' => 4, @@ -51,6 +55,10 @@ class ComposerStaticInit1b32198725235c8d6500c87262ef30c2 'League\\Flysystem\\Cached\\' => 24, 'League\\Flysystem\\' => 17, ), + 'F' => + array ( + 'Firebase\\JWT\\' => 13, + ), ); public static $prefixDirsPsr4 = array ( @@ -82,6 +90,10 @@ class ComposerStaticInit1b32198725235c8d6500c87262ef30c2 array ( 0 => __DIR__ . '/..' . '/taoser/think-auth/src', ), + 'phpspirit\\databackup\\' => + array ( + 0 => __DIR__ . '/..' . '/lotofbadcode/phpspirit_databackup/src', + ), 'app\\' => array ( 0 => __DIR__ . '/../..' . '/app', @@ -134,6 +146,10 @@ class ComposerStaticInit1b32198725235c8d6500c87262ef30c2 array ( 0 => __DIR__ . '/..' . '/league/flysystem/src', ), + 'Firebase\\JWT\\' => + array ( + 0 => __DIR__ . '/..' . '/firebase/php-jwt/src', + ), ); public static $fallbackDirsPsr0 = array ( diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index e0a3cc1..2a4c8cb 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -1,5 +1,68 @@ { "packages": [ + { + "name": "firebase/php-jwt", + "version": "v5.2.0", + "version_normalized": "5.2.0.0", + "source": { + "type": "git", + "url": "https://github.com/firebase/php-jwt.git", + "reference": "feb0e820b8436873675fd3aca04f3728eb2185cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/feb0e820b8436873675fd3aca04f3728eb2185cb", + "reference": "feb0e820b8436873675fd3aca04f3728eb2185cb", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": ">=4.8 <=9" + }, + "time": "2020-03-25T18:49:23+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "keywords": [ + "jwt", + "php" + ], + "support": { + "issues": "https://github.com/firebase/php-jwt/issues", + "source": "https://github.com/firebase/php-jwt/tree/master" + }, + "install-path": "../firebase/php-jwt" + }, { "name": "league/flysystem", "version": "1.1.3", @@ -152,17 +215,17 @@ }, { "name": "league/mime-type-detection", - "version": "1.5.1", - "version_normalized": "1.5.1.0", + "version": "1.7.0", + "version_normalized": "1.7.0.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "353f66d7555d8a90781f6f5e7091932f9a4250aa" + "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/353f66d7555d8a90781f6f5e7091932f9a4250aa", - "reference": "353f66d7555d8a90781f6f5e7091932f9a4250aa", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", + "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", "shasum": "", "mirrors": [ { @@ -176,10 +239,11 @@ "php": "^7.2 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.36", - "phpunit/phpunit": "^8.5.8" + "friendsofphp/php-cs-fixer": "^2.18", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3" }, - "time": "2020-10-18T11:50:25+00:00", + "time": "2021-01-18T20:58:21+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -200,7 +264,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.5.1" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.7.0" }, "funding": [ { @@ -215,18 +279,71 @@ "install-path": "../league/mime-type-detection" }, { - "name": "phpmailer/phpmailer", - "version": "v6.1.7", - "version_normalized": "6.1.7.0", + "name": "lotofbadcode/phpspirit_databackup", + "version": "v1.1", + "version_normalized": "1.1.0.0", "source": { "type": "git", - "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "2c2370ba3df7034f9eb7b8f387c97b52b2ba5ad0" + "url": "https://github.com/lotofbadcode/phpspirit_databackup.git", + "reference": "2627b2e4206031731c94c8d637fb06b3b96e8860" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/2c2370ba3df7034f9eb7b8f387c97b52b2ba5ad0", - "reference": "2c2370ba3df7034f9eb7b8f387c97b52b2ba5ad0", + "url": "https://api.github.com/repos/lotofbadcode/phpspirit_databackup/zipball/2627b2e4206031731c94c8d637fb06b3b96e8860", + "reference": "2627b2e4206031731c94c8d637fb06b3b96e8860", + "shasum": "", + "mirrors": [ + { + "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=7.0" + }, + "time": "2020-10-18T08:14:55+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "phpspirit\\databackup\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "代码庸医", + "email": "3359964266@qq.com" + } + ], + "description": "一个PHP数据库备份恢复的插件", + "keywords": [ + "library", + "php" + ], + "support": { + "issues": "https://github.com/lotofbadcode/phpspirit_databackup/issues", + "source": "https://github.com/lotofbadcode/phpspirit_databackup/tree/v1.1" + }, + "install-path": "../lotofbadcode/phpspirit_databackup" + }, + { + "name": "phpmailer/phpmailer", + "version": "v6.2.0", + "version_normalized": "6.2.0.0", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "e38888a75c070304ca5514197d4847a59a5c853f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e38888a75c070304ca5514197d4847a59a5c853f", + "reference": "e38888a75c070304ca5514197d4847a59a5c853f", "shasum": "", "mirrors": [ { @@ -238,12 +355,16 @@ "require": { "ext-ctype": "*", "ext-filter": "*", + "ext-hash": "*", "php": ">=5.5.0" }, "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", "doctrine/annotations": "^1.2", - "friendsofphp/php-cs-fixer": "^2.2", - "phpunit/phpunit": "^4.8 || ^5.7" + "phpcompatibility/php-compatibility": "^9.3.5", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "^3.5.6", + "yoast/phpunit-polyfills": "^0.2.0" }, "suggest": { "ext-mbstring": "Needed to send email in multibyte encoding charset", @@ -253,7 +374,7 @@ "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication", "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)" }, - "time": "2020-07-14T18:50:27+00:00", + "time": "2020-11-25T15:24:57+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -285,11 +406,11 @@ "description": "PHPMailer is a full-featured email creation and transfer class for PHP", "support": { "issues": "https://github.com/PHPMailer/PHPMailer/issues", - "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.1.7" + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.2.0" }, "funding": [ { - "url": "https://github.com/synchro", + "url": "https://github.com/Synchro", "type": "github" } ], @@ -523,17 +644,17 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.20.0", - "version_normalized": "1.20.0.0", + "version": "v1.22.0", + "version_normalized": "1.22.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "39d483bdf39be819deabf04ec872eb0b2410b531" + "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", - "reference": "39d483bdf39be819deabf04ec872eb0b2410b531", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", + "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", "shasum": "", "mirrors": [ { @@ -548,11 +669,11 @@ "suggest": { "ext-mbstring": "For best performance" }, - "time": "2020-10-23T14:02:19+00:00", + "time": "2021-01-07T16:49:33+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -592,7 +713,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.0" }, "funding": [ { @@ -612,17 +733,17 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.20.0", - "version_normalized": "1.20.0.0", + "version": "v1.22.0", + "version_normalized": "1.22.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930" + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930", - "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", "shasum": "", "mirrors": [ { @@ -634,11 +755,11 @@ "require": { "php": ">=7.1" }, - "time": "2020-10-23T14:02:19+00:00", + "time": "2021-01-07T16:49:33+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -677,7 +798,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.0" }, "funding": [ { @@ -697,17 +818,17 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.20.0", - "version_normalized": "1.20.0.0", + "version": "v1.22.0", + "version_normalized": "1.22.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", "shasum": "", "mirrors": [ { @@ -719,11 +840,11 @@ "require": { "php": ">=7.1" }, - "time": "2020-10-23T14:02:19+00:00", + "time": "2021-01-07T16:49:33+00:00", "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -769,7 +890,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.0" }, "funding": [ { @@ -789,17 +910,17 @@ }, { "name": "symfony/var-dumper", - "version": "v4.4.16", - "version_normalized": "4.4.16.0", + "version": "v4.4.19", + "version_normalized": "4.4.19.0", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "3718e18b68d955348ad860e505991802c09f5f73" + "reference": "a1eab2f69906dc83c5ddba4632180260d0ab4f7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3718e18b68d955348ad860e505991802c09f5f73", - "reference": "3718e18b68d955348ad860e505991802c09f5f73", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a1eab2f69906dc83c5ddba4632180260d0ab4f7f", + "reference": "a1eab2f69906dc83c5ddba4632180260d0ab4f7f", "shasum": "", "mirrors": [ { @@ -822,14 +943,14 @@ "ext-iconv": "*", "symfony/console": "^3.4|^4.0|^5.0", "symfony/process": "^4.4|^5.0", - "twig/twig": "^1.34|^2.4|^3.0" + "twig/twig": "^1.43|^2.13|^3.0.4" }, "suggest": { "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", "ext-intl": "To show region name in time zone dump", "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" }, - "time": "2020-10-26T20:47:51+00:00", + "time": "2021-01-27T09:09:26+00:00", "bin": [ "Resources/bin/var-dump-server" ], @@ -860,14 +981,14 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony mechanism for exploring and dumping PHP variables", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", "homepage": "https://symfony.com", "keywords": [ "debug", "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v4.4.16" + "source": "https://github.com/symfony/var-dumper/tree/v4.4.19" }, "funding": [ { @@ -945,17 +1066,17 @@ }, { "name": "topthink/framework", - "version": "v6.0.5", - "version_normalized": "6.0.5.0", + "version": "v6.0.7", + "version_normalized": "6.0.7.0", "source": { "type": "git", "url": "https://github.com/top-think/framework.git", - "reference": "85625d984f5c96699dc27d384869f206c3aec1cc" + "reference": "db8fe22520a9660dd5e4c87e304034ac49e39270" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/top-think/framework/zipball/85625d984f5c96699dc27d384869f206c3aec1cc", - "reference": "85625d984f5c96699dc27d384869f206c3aec1cc", + "url": "https://api.github.com/repos/top-think/framework/zipball/db8fe22520a9660dd5e4c87e304034ac49e39270", + "reference": "db8fe22520a9660dd5e4c87e304034ac49e39270", "shasum": "", "mirrors": [ { @@ -981,7 +1102,7 @@ "mockery/mockery": "^1.2", "phpunit/phpunit": "^7.0" }, - "time": "2020-10-26T07:18:00+00:00", + "time": "2021-01-25T14:48:29+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1013,7 +1134,7 @@ ], "support": { "issues": "https://github.com/top-think/framework/issues", - "source": "https://github.com/top-think/framework/tree/v6.0.5" + "source": "https://github.com/top-think/framework/tree/v6.0.7" }, "install-path": "../topthink/framework" }, @@ -1178,17 +1299,17 @@ }, { "name": "topthink/think-orm", - "version": "v2.0.34", - "version_normalized": "2.0.34.0", + "version": "v2.0.36", + "version_normalized": "2.0.36.0", "source": { "type": "git", "url": "https://github.com/top-think/think-orm.git", - "reference": "57f9b98895b0ff4ae7b7b75e51456fd8cb8fb629" + "reference": "f48dc09050f25029d41a66bfc9c3c403e4f82024" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/top-think/think-orm/zipball/57f9b98895b0ff4ae7b7b75e51456fd8cb8fb629", - "reference": "57f9b98895b0ff4ae7b7b75e51456fd8cb8fb629", + "url": "https://api.github.com/repos/top-think/think-orm/zipball/f48dc09050f25029d41a66bfc9c3c403e4f82024", + "reference": "f48dc09050f25029d41a66bfc9c3c403e4f82024", "shasum": "", "mirrors": [ { @@ -1204,7 +1325,7 @@ "psr/simple-cache": "^1.0", "topthink/think-helper": "^3.1" }, - "time": "2020-09-28T08:24:57+00:00", + "time": "2021-01-12T09:08:52+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1228,21 +1349,25 @@ "database", "orm" ], + "support": { + "issues": "https://github.com/top-think/think-orm/issues", + "source": "https://github.com/top-think/think-orm/tree/v2.0.36" + }, "install-path": "../topthink/think-orm" }, { "name": "topthink/think-template", - "version": "v2.0.7", - "version_normalized": "2.0.7.0", + "version": "v2.0.8", + "version_normalized": "2.0.8.0", "source": { "type": "git", "url": "https://github.com/top-think/think-template.git", - "reference": "e98bdbb4a4c94b442f17dfceba81e0134d4fbd19" + "reference": "abfc293f74f9ef5127b5c416310a01fe42e59368" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/top-think/think-template/zipball/e98bdbb4a4c94b442f17dfceba81e0134d4fbd19", - "reference": "e98bdbb4a4c94b442f17dfceba81e0134d4fbd19", + "url": "https://api.github.com/repos/top-think/think-template/zipball/abfc293f74f9ef5127b5c416310a01fe42e59368", + "reference": "abfc293f74f9ef5127b5c416310a01fe42e59368", "shasum": "", "mirrors": [ { @@ -1255,7 +1380,7 @@ "php": ">=7.1.0", "psr/simple-cache": "^1.0" }, - "time": "2019-09-20T15:31:04+00:00", + "time": "2020-12-10T07:52:03+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1274,6 +1399,10 @@ } ], "description": "the php template engine", + "support": { + "issues": "https://github.com/top-think/think-template/issues", + "source": "https://github.com/top-think/think-template/tree/v2.0.8" + }, "install-path": "../topthink/think-template" }, { diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 2b96f15..12ec343 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -7,10 +7,19 @@ array ( ), 'reference' => NULL, - 'name' => 'topthink/think', + 'name' => 'taoser/taoler', ), 'versions' => array ( + 'firebase/php-jwt' => + array ( + 'pretty_version' => 'v5.2.0', + 'version' => '5.2.0.0', + 'aliases' => + array ( + ), + 'reference' => 'feb0e820b8436873675fd3aca04f3728eb2185cb', + ), 'league/flysystem' => array ( 'pretty_version' => '1.1.3', @@ -31,21 +40,30 @@ ), 'league/mime-type-detection' => array ( - 'pretty_version' => '1.5.1', - 'version' => '1.5.1.0', + 'pretty_version' => '1.7.0', + 'version' => '1.7.0.0', 'aliases' => array ( ), - 'reference' => '353f66d7555d8a90781f6f5e7091932f9a4250aa', + 'reference' => '3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3', + ), + 'lotofbadcode/phpspirit_databackup' => + array ( + 'pretty_version' => 'v1.1', + 'version' => '1.1.0.0', + 'aliases' => + array ( + ), + 'reference' => '2627b2e4206031731c94c8d637fb06b3b96e8860', ), 'phpmailer/phpmailer' => array ( - 'pretty_version' => 'v6.1.7', - 'version' => '6.1.7.0', + 'pretty_version' => 'v6.2.0', + 'version' => '6.2.0.0', 'aliases' => array ( ), - 'reference' => '2c2370ba3df7034f9eb7b8f387c97b52b2ba5ad0', + 'reference' => 'e38888a75c070304ca5514197d4847a59a5c853f', ), 'psr/cache' => array ( @@ -85,39 +103,48 @@ ), 'symfony/polyfill-mbstring' => array ( - 'pretty_version' => 'v1.20.0', - 'version' => '1.20.0.0', + 'pretty_version' => 'v1.22.0', + 'version' => '1.22.0.0', 'aliases' => array ( ), - 'reference' => '39d483bdf39be819deabf04ec872eb0b2410b531', + 'reference' => 'f377a3dd1fde44d37b9831d68dc8dea3ffd28e13', ), 'symfony/polyfill-php72' => array ( - 'pretty_version' => 'v1.20.0', - 'version' => '1.20.0.0', + 'pretty_version' => 'v1.22.0', + 'version' => '1.22.0.0', 'aliases' => array ( ), - 'reference' => 'cede45fcdfabdd6043b3592e83678e42ec69e930', + 'reference' => 'cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9', ), 'symfony/polyfill-php80' => array ( - 'pretty_version' => 'v1.20.0', - 'version' => '1.20.0.0', + 'pretty_version' => 'v1.22.0', + 'version' => '1.22.0.0', 'aliases' => array ( ), - 'reference' => 'e70aa8b064c5b72d3df2abd5ab1e90464ad009de', + 'reference' => 'dc3063ba22c2a1fd2f45ed856374d79114998f91', ), 'symfony/var-dumper' => array ( - 'pretty_version' => 'v4.4.16', - 'version' => '4.4.16.0', + 'pretty_version' => 'v4.4.19', + 'version' => '4.4.19.0', 'aliases' => array ( ), - 'reference' => '3718e18b68d955348ad860e505991802c09f5f73', + 'reference' => 'a1eab2f69906dc83c5ddba4632180260d0ab4f7f', + ), + 'taoser/taoler' => + array ( + 'pretty_version' => '1.0.0+no-version-set', + 'version' => '1.0.0.0', + 'aliases' => + array ( + ), + 'reference' => NULL, ), 'taoser/think-auth' => array ( @@ -130,21 +157,12 @@ ), 'topthink/framework' => array ( - 'pretty_version' => 'v6.0.5', - 'version' => '6.0.5.0', + 'pretty_version' => 'v6.0.7', + 'version' => '6.0.7.0', 'aliases' => array ( ), - 'reference' => '85625d984f5c96699dc27d384869f206c3aec1cc', - ), - 'topthink/think' => - array ( - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', - 'aliases' => - array ( - ), - 'reference' => NULL, + 'reference' => 'db8fe22520a9660dd5e4c87e304034ac49e39270', ), 'topthink/think-captcha' => array ( @@ -175,21 +193,21 @@ ), 'topthink/think-orm' => array ( - 'pretty_version' => 'v2.0.34', - 'version' => '2.0.34.0', + 'pretty_version' => 'v2.0.36', + 'version' => '2.0.36.0', 'aliases' => array ( ), - 'reference' => '57f9b98895b0ff4ae7b7b75e51456fd8cb8fb629', + 'reference' => 'f48dc09050f25029d41a66bfc9c3c403e4f82024', ), 'topthink/think-template' => array ( - 'pretty_version' => 'v2.0.7', - 'version' => '2.0.7.0', + 'pretty_version' => 'v2.0.8', + 'version' => '2.0.8.0', 'aliases' => array ( ), - 'reference' => 'e98bdbb4a4c94b442f17dfceba81e0134d4fbd19', + 'reference' => 'abfc293f74f9ef5127b5c416310a01fe42e59368', ), 'topthink/think-trace' => array ( diff --git a/vendor/composer/platform_check.php b/vendor/composer/platform_check.php index be14114..a34835b 100644 --- a/vendor/composer/platform_check.php +++ b/vendor/composer/platform_check.php @@ -12,6 +12,7 @@ $missingExtensions = array(); extension_loaded('ctype') || $missingExtensions[] = 'ctype'; extension_loaded('fileinfo') || $missingExtensions[] = 'fileinfo'; extension_loaded('filter') || $missingExtensions[] = 'filter'; +extension_loaded('hash') || $missingExtensions[] = 'hash'; extension_loaded('json') || $missingExtensions[] = 'json'; extension_loaded('mbstring') || $missingExtensions[] = 'mbstring'; diff --git a/vendor/firebase/php-jwt/LICENSE b/vendor/firebase/php-jwt/LICENSE new file mode 100644 index 0000000..cb0c49b --- /dev/null +++ b/vendor/firebase/php-jwt/LICENSE @@ -0,0 +1,30 @@ +Copyright (c) 2011, Neuman Vong + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Neuman Vong nor the names of other + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/firebase/php-jwt/README.md b/vendor/firebase/php-jwt/README.md new file mode 100644 index 0000000..9c8b545 --- /dev/null +++ b/vendor/firebase/php-jwt/README.md @@ -0,0 +1,200 @@ +[](https://travis-ci.org/firebase/php-jwt) +[](https://packagist.org/packages/firebase/php-jwt) +[](https://packagist.org/packages/firebase/php-jwt) +[](https://packagist.org/packages/firebase/php-jwt) + +PHP-JWT +======= +A simple library to encode and decode JSON Web Tokens (JWT) in PHP, conforming to [RFC 7519](https://tools.ietf.org/html/rfc7519). + +Installation +------------ + +Use composer to manage your dependencies and download PHP-JWT: + +```bash +composer require firebase/php-jwt +``` + +Example +------- +```php + "http://example.org", + "aud" => "http://example.com", + "iat" => 1356999524, + "nbf" => 1357000000 +); + +/** + * IMPORTANT: + * You must specify supported algorithms for your application. See + * https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40 + * for a list of spec-compliant algorithms. + */ +$jwt = JWT::encode($payload, $key); +$decoded = JWT::decode($jwt, $key, array('HS256')); + +print_r($decoded); + +/* + NOTE: This will now be an object instead of an associative array. To get + an associative array, you will need to cast it as such: +*/ + +$decoded_array = (array) $decoded; + +/** + * You can add a leeway to account for when there is a clock skew times between + * the signing and verifying servers. It is recommended that this leeway should + * not be bigger than a few minutes. + * + * Source: http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#nbfDef + */ +JWT::$leeway = 60; // $leeway in seconds +$decoded = JWT::decode($jwt, $key, array('HS256')); + +?> +``` +Example with RS256 (openssl) +---------------------------- +```php + "example.org", + "aud" => "example.com", + "iat" => 1356999524, + "nbf" => 1357000000 +); + +$jwt = JWT::encode($payload, $privateKey, 'RS256'); +echo "Encode:\n" . print_r($jwt, true) . "\n"; + +$decoded = JWT::decode($jwt, $publicKey, array('RS256')); + +/* + NOTE: This will now be an object instead of an associative array. To get + an associative array, you will need to cast it as such: +*/ + +$decoded_array = (array) $decoded; +echo "Decode:\n" . print_r($decoded_array, true) . "\n"; +?> +``` + +Changelog +--------- + +#### 5.0.0 / 2017-06-26 +- Support RS384 and RS512. + See [#117](https://github.com/firebase/php-jwt/pull/117). Thanks [@joostfaassen](https://github.com/joostfaassen)! +- Add an example for RS256 openssl. + See [#125](https://github.com/firebase/php-jwt/pull/125). Thanks [@akeeman](https://github.com/akeeman)! +- Detect invalid Base64 encoding in signature. + See [#162](https://github.com/firebase/php-jwt/pull/162). Thanks [@psignoret](https://github.com/psignoret)! +- Update `JWT::verify` to handle OpenSSL errors. + See [#159](https://github.com/firebase/php-jwt/pull/159). Thanks [@bshaffer](https://github.com/bshaffer)! +- Add `array` type hinting to `decode` method + See [#101](https://github.com/firebase/php-jwt/pull/101). Thanks [@hywak](https://github.com/hywak)! +- Add all JSON error types. + See [#110](https://github.com/firebase/php-jwt/pull/110). Thanks [@gbalduzzi](https://github.com/gbalduzzi)! +- Bugfix 'kid' not in given key list. + See [#129](https://github.com/firebase/php-jwt/pull/129). Thanks [@stampycode](https://github.com/stampycode)! +- Miscellaneous cleanup, documentation and test fixes. + See [#107](https://github.com/firebase/php-jwt/pull/107), [#115](https://github.com/firebase/php-jwt/pull/115), + [#160](https://github.com/firebase/php-jwt/pull/160), [#161](https://github.com/firebase/php-jwt/pull/161), and + [#165](https://github.com/firebase/php-jwt/pull/165). Thanks [@akeeman](https://github.com/akeeman), + [@chinedufn](https://github.com/chinedufn), and [@bshaffer](https://github.com/bshaffer)! + +#### 4.0.0 / 2016-07-17 +- Add support for late static binding. See [#88](https://github.com/firebase/php-jwt/pull/88) for details. Thanks to [@chappy84](https://github.com/chappy84)! +- Use static `$timestamp` instead of `time()` to improve unit testing. See [#93](https://github.com/firebase/php-jwt/pull/93) for details. Thanks to [@josephmcdermott](https://github.com/josephmcdermott)! +- Fixes to exceptions classes. See [#81](https://github.com/firebase/php-jwt/pull/81) for details. Thanks to [@Maks3w](https://github.com/Maks3w)! +- Fixes to PHPDoc. See [#76](https://github.com/firebase/php-jwt/pull/76) for details. Thanks to [@akeeman](https://github.com/akeeman)! + +#### 3.0.0 / 2015-07-22 +- Minimum PHP version updated from `5.2.0` to `5.3.0`. +- Add `\Firebase\JWT` namespace. See +[#59](https://github.com/firebase/php-jwt/pull/59) for details. Thanks to +[@Dashron](https://github.com/Dashron)! +- Require a non-empty key to decode and verify a JWT. See +[#60](https://github.com/firebase/php-jwt/pull/60) for details. Thanks to +[@sjones608](https://github.com/sjones608)! +- Cleaner documentation blocks in the code. See +[#62](https://github.com/firebase/php-jwt/pull/62) for details. Thanks to +[@johanderuijter](https://github.com/johanderuijter)! + +#### 2.2.0 / 2015-06-22 +- Add support for adding custom, optional JWT headers to `JWT::encode()`. See +[#53](https://github.com/firebase/php-jwt/pull/53/files) for details. Thanks to +[@mcocaro](https://github.com/mcocaro)! + +#### 2.1.0 / 2015-05-20 +- Add support for adding a leeway to `JWT:decode()` that accounts for clock skew +between signing and verifying entities. Thanks to [@lcabral](https://github.com/lcabral)! +- Add support for passing an object implementing the `ArrayAccess` interface for +`$keys` argument in `JWT::decode()`. Thanks to [@aztech-dev](https://github.com/aztech-dev)! + +#### 2.0.0 / 2015-04-01 +- **Note**: It is strongly recommended that you update to > v2.0.0 to address + known security vulnerabilities in prior versions when both symmetric and + asymmetric keys are used together. +- Update signature for `JWT::decode(...)` to require an array of supported + algorithms to use when verifying token signatures. + + +Tests +----- +Run the tests using phpunit: + +```bash +$ pear install PHPUnit +$ phpunit --configuration phpunit.xml.dist +PHPUnit 3.7.10 by Sebastian Bergmann. +..... +Time: 0 seconds, Memory: 2.50Mb +OK (5 tests, 5 assertions) +``` + +New Lines in private keys +----- + +If your private key contains `\n` characters, be sure to wrap it in double quotes `""` +and not single quotes `''` in order to properly interpret the escaped characters. + +License +------- +[3-Clause BSD](http://opensource.org/licenses/BSD-3-Clause). diff --git a/vendor/firebase/php-jwt/composer.json b/vendor/firebase/php-jwt/composer.json new file mode 100644 index 0000000..25d1cfa --- /dev/null +++ b/vendor/firebase/php-jwt/composer.json @@ -0,0 +1,33 @@ +{ + "name": "firebase/php-jwt", + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "keywords": [ + "php", + "jwt" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "license": "BSD-3-Clause", + "require": { + "php": ">=5.3.0" + }, + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "require-dev": { + "phpunit/phpunit": ">=4.8 <=9" + } +} diff --git a/vendor/firebase/php-jwt/src/BeforeValidException.php b/vendor/firebase/php-jwt/src/BeforeValidException.php new file mode 100644 index 0000000..fdf82bd --- /dev/null +++ b/vendor/firebase/php-jwt/src/BeforeValidException.php @@ -0,0 +1,6 @@ + + * @license http://opensource.org/licenses/BSD-3-Clause 3-clause BSD + * @link https://github.com/firebase/php-jwt + */ +class JWK +{ + /** + * Parse a set of JWK keys + * + * @param array $jwks The JSON Web Key Set as an associative array + * + * @return array An associative array that represents the set of keys + * + * @throws InvalidArgumentException Provided JWK Set is empty + * @throws UnexpectedValueException Provided JWK Set was invalid + * @throws DomainException OpenSSL failure + * + * @uses parseKey + */ + public static function parseKeySet(array $jwks) + { + $keys = array(); + + if (!isset($jwks['keys'])) { + throw new UnexpectedValueException('"keys" member must exist in the JWK Set'); + } + if (empty($jwks['keys'])) { + throw new InvalidArgumentException('JWK Set did not contain any keys'); + } + + foreach ($jwks['keys'] as $k => $v) { + $kid = isset($v['kid']) ? $v['kid'] : $k; + if ($key = self::parseKey($v)) { + $keys[$kid] = $key; + } + } + + if (0 === \count($keys)) { + throw new UnexpectedValueException('No supported algorithms found in JWK Set'); + } + + return $keys; + } + + /** + * Parse a JWK key + * + * @param array $jwk An individual JWK + * + * @return resource|array An associative array that represents the key + * + * @throws InvalidArgumentException Provided JWK is empty + * @throws UnexpectedValueException Provided JWK was invalid + * @throws DomainException OpenSSL failure + * + * @uses createPemFromModulusAndExponent + */ + private static function parseKey(array $jwk) + { + if (empty($jwk)) { + throw new InvalidArgumentException('JWK must not be empty'); + } + if (!isset($jwk['kty'])) { + throw new UnexpectedValueException('JWK must contain a "kty" parameter'); + } + + switch ($jwk['kty']) { + case 'RSA': + if (\array_key_exists('d', $jwk)) { + throw new UnexpectedValueException('RSA private keys are not supported'); + } + if (!isset($jwk['n']) || !isset($jwk['e'])) { + throw new UnexpectedValueException('RSA keys must contain values for both "n" and "e"'); + } + + $pem = self::createPemFromModulusAndExponent($jwk['n'], $jwk['e']); + $publicKey = \openssl_pkey_get_public($pem); + if (false === $publicKey) { + throw new DomainException( + 'OpenSSL error: ' . \openssl_error_string() + ); + } + return $publicKey; + default: + // Currently only RSA is supported + break; + } + } + + /** + * Create a public key represented in PEM format from RSA modulus and exponent information + * + * @param string $n The RSA modulus encoded in Base64 + * @param string $e The RSA exponent encoded in Base64 + * + * @return string The RSA public key represented in PEM format + * + * @uses encodeLength + */ + private static function createPemFromModulusAndExponent($n, $e) + { + $modulus = JWT::urlsafeB64Decode($n); + $publicExponent = JWT::urlsafeB64Decode($e); + + $components = array( + 'modulus' => \pack('Ca*a*', 2, self::encodeLength(\strlen($modulus)), $modulus), + 'publicExponent' => \pack('Ca*a*', 2, self::encodeLength(\strlen($publicExponent)), $publicExponent) + ); + + $rsaPublicKey = \pack( + 'Ca*a*a*', + 48, + self::encodeLength(\strlen($components['modulus']) + \strlen($components['publicExponent'])), + $components['modulus'], + $components['publicExponent'] + ); + + // sequence(oid(1.2.840.113549.1.1.1), null)) = rsaEncryption. + $rsaOID = \pack('H*', '300d06092a864886f70d0101010500'); // hex version of MA0GCSqGSIb3DQEBAQUA + $rsaPublicKey = \chr(0) . $rsaPublicKey; + $rsaPublicKey = \chr(3) . self::encodeLength(\strlen($rsaPublicKey)) . $rsaPublicKey; + + $rsaPublicKey = \pack( + 'Ca*a*', + 48, + self::encodeLength(\strlen($rsaOID . $rsaPublicKey)), + $rsaOID . $rsaPublicKey + ); + + $rsaPublicKey = "-----BEGIN PUBLIC KEY-----\r\n" . + \chunk_split(\base64_encode($rsaPublicKey), 64) . + '-----END PUBLIC KEY-----'; + + return $rsaPublicKey; + } + + /** + * DER-encode the length + * + * DER supports lengths up to (2**8)**127, however, we'll only support lengths up to (2**8)**4. See + * {@link http://itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf#p=13 X.690 paragraph 8.1.3} for more information. + * + * @param int $length + * @return string + */ + private static function encodeLength($length) + { + if ($length <= 0x7F) { + return \chr($length); + } + + $temp = \ltrim(\pack('N', $length), \chr(0)); + + return \pack('Ca*', 0x80 | \strlen($temp), $temp); + } +} diff --git a/vendor/firebase/php-jwt/src/JWT.php b/vendor/firebase/php-jwt/src/JWT.php new file mode 100644 index 0000000..4860028 --- /dev/null +++ b/vendor/firebase/php-jwt/src/JWT.php @@ -0,0 +1,512 @@ + + * @author Anant Narayanan