{"repo":"Tinywan/webman-jwt","free":true,"listed":false,"github":"https://github.com/Tinywan/webman-jwt","clone":"git clone https://github.com/Tinywan/webman-jwt.git","description":"🔑 An authentication（认证） library that supports JSON Web Token (JWT) for webman plugin","language":"PHP","stars":65,"topics":["jwt-token","jwt-authentication","webman","workerman","php-library","php","tinywan","jwt"],"license":"Apache-2.0","category":"auth-billing-email","readme_excerpt":"🚀 JSON Web Token (JWT) JWT 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准（(RFC 7519)，该token被设计为紧凑且安全的，特别适用于分布式站点的单点登录（SSO）场景。 注：从 1.14.0 版本开始，出于安全考虑新增了密钥长度验证。 1.14.0 以下版本，基本不检查长度。 1.14.0 及以上版本：强制检查。 v2.0.0 升级说明 v2.0.0 将最低 PHP 版本提升至 8.2 ，不再支持 PHP 7.4、8.0 和 8.1。仍使用旧版 PHP 的项目请保持在 v1.15.x ；PHP 8.2 及以上项目可执行以下命令升级： 安装 使用 生成令牌 输出（json格式） 响应参数 参数 类型 描述 示例值 :--- :--- :--- :--- token type string Token 类型 Bearer expires in int 凭证有效时间，单位：秒 36000 access token string 访问凭证 XXXXXXXXXXXXXXXXXXXX refresh token string 刷新凭证（访问凭证过期使用 ） XXXXXXXXXXXXXXXXXXXX 支持函数列表 1、获取当前 id 2、获取所有字段 3、获取自定义字段 4、刷新令牌（通过刷新令牌获取访问令牌） 5、获令牌有效期剩余时长 6、单设备登录。默认是关闭，开启请修改配置文件 config/plugin/tinywan/jwt 单设备登录支持定义客户端 client 字段，自定义客户端单点登录（默认为 WEB ，即网页端），如： MOBILE 、 APP 、 WECHAT 、 WEB 、 ADMIN 、 API 、 OTHER 等等 7、获取当前用户信息（模型）需要插件大于版本 =1.2.4 该配置项目 'user model' 为一个匿名函数，默认返回空数组，可以根据自己项目ORM定制化自己的返回模型 ThinkORM 配置 LaravelORM 配置 8、令牌清理 只有配置项 is single device 为 true 才会生效。可选参数： MOBILE 、 APP 、 WECHAT 、 WEB 、 ADMIN 、 API 、 OTHER 等等 9、自定义终端 client 默认是 WEB 端 10、自定义访问令牌和刷新令牌过期时间 11、各个算法的最小长度要求（ HS 系列最常见）。插件大于版本 =1.14.0 强制要求 算法 最低密钥长度（字节） 字符数参考（UTF-8） 推荐生成方式 --------- ----------------------- ---------------------- -------------------------------- HS256 32 字节 ≥32 字符 bin2hex(random bytes(32)) → 64 hex 字符 HS384 48 字节 ≥48 字符 random bytes(48) HS512 64 字节 ≥64 字符 random bytes(64) 12、令牌过期错误码 访问令牌 身份验证令牌无效： 401011 身份验证令牌尚未生效： 401012 身份验证会话已过期，请重新登录！： 401013 获取的扩展字段不存在： 401014 访问令牌未知错误： 401015 刷新令牌 刷新令牌无效： 401021 刷新令牌尚未生效： 401022 刷新令牌会话已过期，请再次登录！： 401023 刷新令牌获取的扩展字段不存","default_branch":null,"files":null,"tree":[],"storefront":"/r/Tinywan","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Tinywan/webman-jwt/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}