美文网首页程序员
NodeJS 使用 jsonwebtoken 创建 JWT 格式

NodeJS 使用 jsonwebtoken 创建 JWT 格式

作者: 张云飞Vir | 来源:发表于2019-03-05 17:36 被阅读50次

背景

在 NodeJS web server 项目上,我们需要做登录验证,通过 用户名和密码 换取 token 是常用的方式。

相关知识

JSON Web Token (JWT) 介绍

它是 一种 JSON 表达的 token 格式。一个 token 包含了三部分:header,payload,signature。
header 是 token 的一部分,用来存放 token 的类型和编码方式,通常是使用 base-64 编码。
payload 包含了信息。你可以存放任一种信息,比如用户信息,产品信息等。它们都是使用 base-64 编码方式进行存储。
 signature 包括了 header,payload 和密钥的混合体。signature 必须安全地保存储在服务端。
官网介绍:https://tools.ietf.org/html/rfc7519

(Payload)说明
{ "iss": "Online JWT Builder", 
  "iat": 1416797419, 
  "exp": 1448333419, 
  "aud": "www.example.com", 
  "sub": "jrocket@example.com", 
  "GivenName": "Johnny", 
  "Surname": "Rocket", 
  "Email": "jrocket@example.com", 
  "Role": [ "Manager", "Project Administrator" ] 
}
* iss: 该JWT的签发者,是否使用是可选的;
* sub: 该JWT所面向的用户,是否使用是可选的;
* aud: 接收该JWT的一方,是否使用是可选的;
* exp(expires): 什么时候过期,这里是一个Unix时间戳,是否使用是可选的;
* iat(issued at): 在什么时候签发的(UNIX时间),是否使用是可选的;其他还有:
* nbf (Not Before):如果当前时间在nbf里的时间之前,则Token不被接受;一般都会留一些余地,比如几分钟;,是否使用是可选的;

jsonwebtoken 介绍

它是 JWT 的 NodeJS 的一种实现。

使用

安装类库

npm install jsonwebtoken

导入

var jwt = require('jsonwebtoken');

代码

    const TokenUtil = {

  sign: function(userName){
    const payload = { userName };
    var token = jwt.sign(payload, privateKey);
    console.log(`token = ${token}`);
    return token;
  },

  verify: function(token){
    var decoded = jwt.verify(token, privateKey);
    // console.log('decoded = '+decoded);
    console.log('decoded = '+JSON.stringify(decoded));
  },

  main: function(){
    let str = this.sign('zhang3');
    this.verify(str);
  }

}

官网地址:https://github.com/auth0/node-jsonwebtoken

参考:

https://github.com/auth0/node-jsonwebtoken
https://tools.ietf.org/html/rfc7519
https://blog.csdn.net/github_35631540/article/details/83898056
http://www.cnblogs.com/xiekeli/p/5607107.html

相关文章

  • NodeJS 使用 jsonwebtoken 创建 JWT 格式

    背景 在 NodeJS web server 项目上,我们需要做登录验证,通过 用户名和密码 换取 token 是...

  • NodeJs jwt(JsonWebToken)

    导入模块 在js文件中引用 生成Token 校验Token 注意事项 请使用expiresIn:以秒为单位或描述的...

  • JsonWebToken

    JWT (JsonWebToken) JWT官网['https://jwt.io/'] JWT简介 1.JWT(J...

  • Node常用模块用法

    jwt用法 const jwt =require("jsonwebtoken"); var secret ="ba...

  • JWT 鉴权

    使用 koa-jwt + jsonwebtoken 完成用户鉴权功能。项目地址:https://github.co...

  • 9.3KOA JsonWebToken

    JsonWebToken 介绍 JsonWebToken(简称:JWT)是一种完全的客户端客户端解决session...

  • nodejs 收藏文章

    nodejs token Oauth认证 Oauth 认证-JWT 在Nodejs中使用JSON WEB Toke...

  • Node中使用JWT

    下载 测试 在命令行中输入node 进入node命令行 引入jwt,jsonwebtoken包被引入到jwt这个对...

  • express框架的token方案

    参考: 【翻译】在Nodejs中使用JSON WEB Tokens JWT原理 一个JWT被周期(period)分...

  • jsonwebtoken设置token passport

    首先设置下载库文件 jsonwebtoken设置token passport passport-jwt获取toke...

网友评论

    本文标题:NodeJS 使用 jsonwebtoken 创建 JWT 格式

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