JWT ( JSON Web Tokens ) 权限扩展包 支持 tp5

欢迎Star:码云地址
GitHub地址

thinkphp的jwt(JSON Web Token)身份验证包。支持Header、Cookie、Param等多种传参方式。包含:验证、验证并且自动刷新等多种中间件。

安装

第一步:

$ 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加入黑名单

token刷新说明:

token默认有效期为60秒,如果需要修改请修改env文件。 refresh_ttl为刷新token有效期参数,单位为分钟。默认有效期14天。 token过期后,旧token将会被加入黑名单。 如果需要自动刷新,请使用中间件 thans\jwt\middleware\JWTAuthAndRefresh::class, 自动刷新后会通过header返回,请保存好。(注意,此中间件过期后第一次访问正常,第二次进入黑名单。)

token传参方式如下:

  • 将token加入到url中作为参数。键名为token
  • 将token加入到cookie。键名为token
  • 将token加入header,如下:Authorization:bearer token值
  • 以上三种方式,任选其一即可。推荐加入header中。

下一步

  • 支持动态配置
  • 支持tp6

License

MIT

Thans
讨论数量: 2
czy2020

tp6 下使用 JWTAuth::auth();//token验证 的时候报错,token参数我用url?token=??? 和将 token 加入 header,Authorization:bearer ????? 这两种形式,都报错 Must have token!
ThinkPHP

ThinkPHP

ThinkPHP

我在方法里面可以打印到参数,但是我发现在包内的 Parser 这个类中的Request对象参数中就已经没有了token参数

5年前 评论
Thans (楼主) 5年前

新手不大会用,楼主大大能出个教程不,万分感谢。 :kissing_heart:

5年前 评论
Thans (楼主) 5年前
kuyou (作者) 5年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!