一、问题描述 我在获取JWT令牌时,报了一个这样的错误 error:io.jsonwebtoken.security.WeakKeyException: The signing key's size is...也就是‘cehgnxuyuan’这个字符串长度太短了,不符合HS256加密算法的密钥长度规则 三、问题解决 只需要将‘chengxuyuan’这个字符串换成一个比较长的即可 运行看下效果,获取JWT令牌成功
本文环境 Windows10,PHP7.1,Redis6.0,Yii 2.0\ 著作权归OwenZhang所有。商业转载请联系OwenZhang获得授权,非商业转载请注明出处。...redis 127.0.0.1:6379> lpush keyname value1.. rpop rpop 移除列表的最后一个元素,返回值为移除的元素。...redis 127.0.0.1:6379> rpop keyname 令牌桶父类 步骤如下: 加入令牌 注意:需要加入定时任务,定时增加令牌数量 获取令牌 重设令牌桶,填满令牌 php namespace common\components; use Yii; use yii\redis\Connection; /\*\* \* 令牌桶 - 限流 \...添加令牌 /\*\* \* 添加令牌数量 \*/ public function add() { // 默认最大添加数量为300
JSON Web令牌(JWT)已成为Web开发中各方之间安全传输信息的流行方法。在本指南中,我们将探索在PHP中创建、验证和解码JWT令牌,而不依赖于外部库。...我们将利用 hash_hmac 生成签名,利用 base64_encode/decode 进行编码和解码。 环境配置 在深入研究代码之前,请确保您的服务器上安装了PHP。...php class Jwt { /**string */ private string $secretKey; /** * @param string $secretKey...Implementation for decoding JWT } // Helper functions for base64 URL encoding/decoding } 创建JWT 让我们实现用于生成...php require 'vendor/autoload.php'; // Your secret key (keep this secure) $secretKey = 'Tinywan2024040000011
composer 安装 composer require lcobucci/jwt 3.3 在extend/tools/jwt创建Token.php 注意:如果没有该目录,则自行创。...生成Token(createToken) php namespace tools\jwt; use Lcobucci\JWT\Builder; use Lcobucci\JWT\Parser; use Lcobucci\JWT\Signer\...')//接收人 ->identifiedBy('MarsLei', true) //标题id ->issuedAt($time)//发出令牌的时间
1.首先设有一个令牌桶,桶内存放令牌,一开始令牌桶内的令牌是满的(桶内令牌的数量可根据服务器情况设定)。 2.每次访问从桶内取走一个令牌,当桶内令牌为0,则不允许再访问。...3.每隔一段时间,再放入令牌,最多使桶内令牌满额。...(可以根据实际情况,每隔一段时间放入若干个令牌,或直接补满令牌桶)我们可以使用redis的队列作为令牌桶容器使用,使用lPush(入队),rPop(出队),实现令牌加入与消耗的操作。...4.令牌桶的另外一个好处是可以方便的改变速度. 一旦需要提高速率,则按需提高放入桶中的令牌的速率....php class Token { private $_max; private $_queue; private $_redis; public function
2,何为事务 鄙人在编程方面的解释:多条命令操作放在一起处理 , 例如提交的时候一起提交,撤销的时候也是一起撤销,书本对这个词的定义内容很多。...4,分享个基于php的类 1 php 2 3 /** 4 * Created by PhpStorm. 5 * User: 林冠宏 6 * Date: 2016/4/28 7 * Time: 10:20 8...*/ 9 include "Config.php"; /** 数据库配置信息类,自行完善 */ 10 11 class Sql{ 12 public $link = null; 13...php 2 /** 3 * Created by PhpStorm. 4 * User: 林冠宏 5 * Date: 2015/10/24 6 * Time: 11:23 7 */
php /** * Created by PhpStorm....头部标题 $csv_header = ['数据']; $redis = new redis(); $redis->connect('127.0.0.1',6379); // 内容 /** * 开始生成...然后加上每行的换行符号,这里建议直接使用PHP的预定义 * 常量PHP_EOL * 3....PHP_EOL; } // 拼接 $csv = $header....$content; // 写入并关闭资源 fwrite($fp, $csv); fclose($fp); //清除redis缓存 $redis->DEL('tempdata'); /* *生成随机64位测试数据
test.php limiter.lua文件 --- @param key 令牌的唯一标识 --- @param permits 请求令牌数量 --- @param curr_mill_second...,上一次获取令牌的毫秒数为空 --- 根据和上一次向桶里添加令牌的时间和当前时间差,触发式往桶里添加令牌,并且更新上一次向桶里添加令牌的时间 --- 如果向桶里添加的令牌数不足一个,则不更新上一次向桶里添加令牌的时间...if(curr_mill_second - last_mill_second < 0) then return -1 end --- 生成令牌操作...['max_permits']}---------每秒生成令牌数:{$data['rate']}----------当前令牌数:{$data['curr_permits']}\r\n"; sleep...(3); } # 命令行执行 php check.php 浏览器多次连续模拟API接口请求,根据check.php查看结果 测试 说明 我们初始化设置令牌最大数量为100个 生成速率为每秒1个令牌/s
事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元; 事务应该具有4个属性:原子性、一致性、隔离性、持续性; 原子性(atomicity)。...一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。...一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。 持久性(durability)。...分布式事务:分布式事务的参与者、资源管理器、事务管理器等位于不用的节点上,这些不同的节点相互协作共同完成一个具有逻辑完整性的事务。...MySQL XA分为两类,内部XA与外部XA;内部XA用于同一实例下跨多个引擎的事务,由大家熟悉的Binlog作为协调者;外部XA用于跨多MySQL实例的分 布式事务,需要应用层介入作为协调者(崩溃时的悬挂事务
第一篇文章是: "使用angular cli生成angular5项目" : http://www.cnblogs.com/cgzl/p/8594571.html 第二篇文章是: "使用angular cli...从蓝本生成代码" : http://www.cnblogs.com/cgzl/p/8605464.html 我们知道使用 ng g module admin 将会生成admin module....为应用生成路由. 先创建一个项目: ng new my-routing --routing 可以看到生成了两个module....再生成一个module, 并且带着路由module (可以先使用-d参数查看将要生成的文件): ng g m admin --routing 在admin module里面, 再创建一个admin component...生成Gurad. ng g guard xxx 这个命令将会生成xxx.guard.ts
MYSQL php PHP+Mysqli 事务处理 php+mysqli 事物处理 事物就是如果两条或多条数据只要有一条SQL语句错误,那么已经执行成功的执行回滚操作,把已经生效的SQL语句回滚为原来的值...原来有100元,B也有100元,A向B转账50元,那么就要执行两条SQL语句,一个是A的余额要减50,B的余额要加50, 如果第一条语句成功了,但是第二条语句失败了,那么就会丢失数据了,这个时候就需要事务处理了...mysqli_connect_error()); } $mysqli->set_charset('utf8');//设置数据库字符集 $mysqli->autocommit(false); // 开始事务...>commit();//提交事务 }else{ $mysqli->rollback();//回滚 } } $mysqli->autocommit(true);//关闭事务 $mysqli...->close();//关闭SQL连接 本文由 Alone88 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为:
我说的事务指的是一般的数据库事务,而不是什么分布式事务之类高大上的概念。听起来很简单,但是即便如此,想实现的优雅一点也不是一件容易的事情。...php try { DB::beginTransaction(); $question->content = '......php namespace App\Http\Middlewares; use Closure; use Exception; use Illuminate\Http\Request; class TransactionMiddleware...php $question->content = '......php if (!
/** * 生成接口sign * 将获得的signStr进行md5加密候转化成大写,再拼接密钥,再md5加密,并且转化为大写 * 签名生成的通用步骤如下: *...,第二步结果就是最终的签名signStr * * 特别注意以下重要规则: * * ◆ 参数名ASCII码从小到大排序(字典序); * ◆ 如果参数的值为空不参与签名...; * ◆ 参数名区分大小写; * (((注意:不同环境后端框架md5结果不一样为,32/16位大小写,此处得前后端对应 * https://www.sojson.com/
pChart是一个开源的图表生成库,主要涉及3个Class:pChart.class, pData.class, pCache.class,可生成20多种简单或复杂的图表,支持PNG,JPG,GIF通用图片格式...使用该程序PHP需要开启GD服务,先来看看pChart的工作流程:主要分为三步:* 读取用于生成图表数据(数据库、文件)* 设计图表样式(圆角、底色等)* 制作标签、题目、图例并生成图表下面看一个简单的柱状图表...php // Standard inclusions include("pChart/pData.class"); include("pChart/pChart.class"); // Dataset...Test->setFontProperties("Fonts/MankSans.ttf",10); $Test->drawTitle(50,22,"Example",50,50,50,585); //生成图表...php // Standard inclusions include("pChart/pData.class"); include("pChart/pChart.class"); // Dataset
eAccelerator是一个自由开放源码的PHP加速器,优化和动态内容缓存,提高了PHP脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。...使PHP程序代码执行效率提高1-10倍; 下面我们以eAccelerator 0.9.6.1版本为例,介绍一下编译安装方法: 1. 编译安装 tar jxvf ..../configure –with-php-config=/usr/local/php/bin/php-config –enable-eaccelerator=shared make make install...配置php.ini 向php.ini文件中添加eAccelerator配置项,这里需要注意zend_extension的路径会在编译安装eAccelerator最后一步是提示,我们copy过来即可。...[eaccelerator] zend_extension=”/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so
/configure --prefix=/usr/local/jpeg6 --enable-shared --enable-static --enable-shared参数用来设置生成共享库 root...sources.list_bak2 trusted.gpg root@localhost:/etc/apt# cp sources.list_bak2 sources.list sources.list_bak2为我自己创建的本地源列表...注:如若已经安装过php 删除安装目录即可: root@localhost:~# rm -rf /usr/local/php5 root@localhost:~# tar zxvf php-5.4.4....tar.gz root@localhost:~# cd php-5.4.4/ root@localhost:~/php-5.4.4# ....信息 [root@orcl10g htdocs]# vi index.php 写入内容如下: <?
最近为项目增加了邮箱登陆的验证,本地测试OK,部署至服务器上提示 imap_open 为未定义函数,由此可知缺少了IMAP的PHP扩展。...完成这个过程之后,系统的 imap-open 环境就准备好了,进行php扩展的安装。 我这里因为已经安装了PHP,而且我也不想重新编译整个环境,所以我只需要编译这个扩展就行。...系统中的PHP为5.2.9版本,找到对应版本的源代码,进入 ./ext/extension/imap/文件夹下,执行下面的步骤: /usr/local/apache/bin/phpize ..../configure --with-php-config=/usr/local/apache/bin/php-config --prefix=/usr/local/apache/ --with-imap...参考资料: 1、PHP IMAP Installation 2、终于搞定PHP中安装imap扩展解决办法 3、PHP with imap support
1、 开启自带的ZipArchive类,实现压缩解压功能 安装 php_zip 扩展 参考文档https://www.jianshu.com/p/7d032dc34219 2、 接入代码如下 /****...*****压缩文件为zip包*** * 判断zip扩展是否安装生效,能查询到zip扩展则可以使用ZipArchive,但注意要加上\ ****/ public function ys_to_zip(){...—路径必须统一,否则会导致资源包打包失败 zip->addFile( Linux上 直接就可以使用,无需开启扩展, 未经允许不得转载:肥猫博客 » PHP打包资源为zip
在本教程中,您将开发一个Web应用程序,该应用程序使用Google Maps API为您选择的任何地址生成一个简短的数字地址。...然后,生成的映射代码以及纬度,经度和物理地址将存储在您在步骤2中创建的数据库中。db.php充当此操作的帮助程序。...我们还将添加一些代码来获取地址信息并将其处理为mapcode。...第7步 - 了解地图代码生成 在查看createDigitalAddressApp.js文件的同时,滚动浏览您在上一步中添加的代码部分,以查找获取通过表单提交的信息并将其处理为唯一地图代码的代码。...在生成mapcode之前,您需要采取的最后一步是编辑db.php文件以允许应用程序访问您的数据库。
$chars=’ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789′;