Jwt

module:models/jwt~ Jwt

JWT model,还包含以下额外的属性:

  • JsonWebTokenError: 所有JWT错误的基类,可能会在verify()的时候发生(比如签名错误)
  • NotBeforeError: 本项目不会用到
  • TokenExpiredError: JWT过期,可能会在verify()的时候发生
  • RevokedError: JWT被撤回,可能会在verify()的时候发生

该类实例化的对象为global.jwt

Constructor

new Jwt(client)

JWT model的构造函数

Source:
Parameters:
Name Type Description
client redis.RedisClient

redis 客户端

Methods

(async) getSecretKey() → {Promise.<Buffer>}

从Redis中获取全局的SecretKey,程序启动时会检查是否存在全局的SecretKey,如果不存在 创建随机的SecretKey并存与Redis。

Source:
Returns:
Type:
Promise.<Buffer>

SecretKey

(async) revoke(uid, jti) → {Promise.<void>}

撤回用户的某个或所有的JWT

Source:
Parameters:
Name Type Description
uid string

用户的id

jti string

optional,JWT的id,如果缺省,撤回所有改用户的JWT

Returns:
Type:
Promise.<void>

setSecretKey(secretKey) → {Promise.<void>}

保存secretKeyRedis数据库中

Source:
Parameters:
Name Type Description
secretKey Buffer

应当是256字节的随机字符串

Returns:
Type:
Promise.<void>

(async) sign(payload, options) → {Promise.<string>}

签名,其中payload应当包含uid表示用户的ID,而options中应该包含expiresIn 表示签名的有效期。

Source:
Parameters:
Name Type Description
payload object

JWT的内容,可以包含uid和role

options object

node-jsonwebtoken

Returns:
Type:
Promise.<string>

生成的jwt

(async) verify(token) → {Promise.<object>}

验证JWT,正确返回payload,否则抛出对应的异常

Source:
Parameters:
Name Type Description
token string

JWT

Returns:
Type:
Promise.<object>

返回JWT的payload