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 协议》,转载必须注明作者和本文链接
陈卿诺语