PHPackages                             yzh52521/think-jwt - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. yzh52521/think-jwt

ActiveLibrary

yzh52521/think-jwt
==================

JSON Web Token (JWT) for Thinkphp plugin

v1.0.5(1y ago)52181[3 issues](https://github.com/yuanzhihai/think-jwt/issues)MITPHPPHP &gt;=8.0.0

Since Apr 27Pushed 1y ago1 watchersCompare

[ Source](https://github.com/yuanzhihai/think-jwt)[ Packagist](https://packagist.org/packages/yzh52521/think-jwt)[ Docs](https://github.com/yzh52521/think-jwt)[ RSS](/packages/yzh52521-think-jwt/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (6)Dependencies (4)Versions (7)Used By (0)

### 说明：

[](#说明)

> `think-jwt` 支持多应用单点登录、多应用多点登录、多应用支持注销 token(token会失效)、支持多应用刷新 token

> 多应用单点登录：在该应用配置下只会有一个 token 生效，一旦刷新 token ，前面生成的 token 都会失效，一般以用户 id 来做区分

> 多应用多点登录：在该配置应用下token 不做限制，一旦刷新 token ，则当前配置应用的 token 会失效

> 注意：使用多应用单点登录或者多应用多点登录时，必须要开启黑名单，并且使用 `thinkphp` 的缓存(建议使用 `redis` 缓存) 。如果不开启黑名单，无法使 token 失效，生成的 token 会在有效时间内都可以使用(未更换证书或者 secret )。

> 多应用单点登录原理：`JWT` 有七个默认字段供选择。单点登录主要用到 jti 默认字段，`jti` 字段的值默认为缓存到redis中的key( 该key的生成为场景值+存储的用户id(`sso_key`)) ，这个key的值会存一个签发时间，token检测会根据这个时间来跟token原有的签发时间对比，如果token原有时间小于等于redis存的时间，则认为无效

> 多应用多点登录原理：多点登录跟单点登录差不多，唯一不同的是jti的值不是场景值+用户id(`sso_key`) ，而是一个唯一字符串，每次调用 `refreshToken` 来刷新 `token` 或者调用 `logout` 注销 token 会默认把请求头中的 token 加入到黑名单，而不会影响到别的 token

> token 不做限制原理：token 不做限制，在 token 有效的时间内都能使用，你只要把配置文件中的 `blacklist_enabled`设置为 `false` 即可，即为关闭黑名单功能

### 使用：

[](#使用)

```
composer require yzh52521/think-jwt
```

##### jwt配置

[](#jwt配置)

```
