ThinkPHP6 集成JWT+接口频繁访问限制
jwt 安装#
第一步:
composer require thans/tp-jwt-auth
第二步:
php think jwt:create
此举将生成 jwt.php 和.env 配置文件。不推荐直接修改 jwt.php 同时,env 中会随机生成 secret。请不要随意更新 secret,也请保障 secret 安全。
使用方式#
对于需要验证的路由或者模块添加中间件:
thans\jwt\middleware\JWTAuth::class
示例:
use thans\jwt\facade\JWTAuth;
$token = JWTAuth::builder ([‘uid’ => 1]);// 参数为用户认证的信息,请自行添加
JWTAuth::auth ();//token 验证
JWTAuth::refresh ();// 刷新 token,会将旧 token 加入黑名单
$tokenStr = JWTAuth::token ()->get (); // 可以获取请求中的完整 token 字符串
$payload = JWTAuth::auth (); // 可验证 token, 并获取 token 中的 payload 部分
$uid = $payload [‘uid’]->getValue (); // 可以继而获取 payload 里自定义的字段,比如 uid
token 刷新说明:
token 默认有效期为 60 秒,如果需要修改请修改 env 文件。
接口频繁访问限制#
composer 安装 think-throttle
composer require topthink/think-throttle
中间件加入频繁限制
->middleware(\think\middleware\Throttle::class, [
// 设置访问频率,例如 '10/m' 指的是允许每分钟请求10次。
'visit_rate' => '5/m',
'key' => '__CONTROLLER__/__ACTION__/__IP__',
]);
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: