美文网首页node
jsonwebtoken的使用

jsonwebtoken的使用

作者: DontPushMeForev | 来源:发表于2017-07-26 16:11 被阅读0次

    参考文档:https://segmentfault.com/a/1190000009494020

    github地址:https://github.com/auth0/node-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这样的时间间隔。

    小栗子:

    jsonwebtoken基本用法

    Token Expiration(exp claim)

    小栗子:

    期限token

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

    期限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加密和解密的栗子:

    加密和解密

    使用jsonwebtoken验证token是否过期:

    验证token是否过期

    相关文章

      网友评论

        本文标题:jsonwebtoken的使用

        本文链接:https://www.haomeiwen.com/subject/qsqokxtx.html