php使用jsonwebtoken,jsonwebtoken的使用

用法

jwt.sign(payload, secretOrPrivateKey, [options, callback])

(异步)如果提供回调,则使用err或JWT 调用回调。

(同步)将JsonWebToken返回为字符串。

payload必须是一个object, buffer或者string。请注意, exp只有当payload是object字面量时才可以设置。

secretOrPrivateKey 是包含HMAC算法的密钥或RSA和ECDSA的PEM编码私钥的string或buffer。

options:

algorithm:加密算法(默认值:HS256)

expiresIn:以秒表示或描述时间跨度zeit / ms的字符串。如60,"2 days","10h","7d",Expiration time,过期时间

notBefore:以秒表示或描述时间跨度zeit / ms的字符串。如:60,"2days","10h","7d"

audience:Audience,观众

issuer:Issuer,发行者

jwtid:JWT ID

subject:Subject,主题

noTimestamp

header

如果payload不是buffer或string,它将被强制转换为使用的字符串JSON.stringify()。

在expiresIn,notBefore,audience,subject,issuer没有默认值时。也可以直接在payload中用exp,nbf,aud,sub和iss分别表示,但是你不能在这两个地方同时设置。

请记住exp,nbf,iat是NumericDate类型。

生成的jwts通常会包含一个iat值除非指定了noTimestamp。如果iat插入payload中,则将使用它来代替实际的时间戳来计算其他事情,诸如options.expiresIn给定一个exp这样的时间间隔。

小栗子:

772c605a49aa

jsonwebtoken基本用法

Token Expiration(exp claim)

小栗子:

772c605a49aa

期限token

注意:secret是加密的字符串,在反加密的时候需要用到。

772c605a49aa

期限token

以上方式实现的效果是一样的。

jwt.verify(token,secretOrPublicKey,[options,callback])

验证token的合法性

jwt.decode(token [,options])

(同步)返回解码没有验证签名是否有效的payload。

警告:这不会验证签名是否有效。你应该不为不可信的消息使用此。你最有可能要使用jwt.verify()。

错误与代码

TokenExpiredError

如果令牌过期,则抛出错误。

错误对象:

name:'TokenExpiredError'

message:'jwt expired'

expiredAt:[ExpDate]

JsonWebTokenError

错误对象:

name:'JsonWebTokenError'

message:

jwt异常

jwt签名是必需的

无效签名

jwt观众无效 预期:[OPTIONS AUDIENCE]

jwt发行人无效。预期:[OPTIONS ISSUER]

jwt id无效。预期:[OPTIONS JWT ID]

jwt主题无效。预期:[OPTIONS SUBJECT]

使用jsonwebtoken加密和解密的栗子:

772c605a49aa

加密和解密

使用jsonwebtoken验证token是否过期:

772c605a49aa

验证token是否过期

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值