json web token 生成 token 代码教程 《《《 用于web前端+ node

  1. 资料查询

npm 官网资料
中文版介绍(无使用方法)

  1. 下载使用到的包
yarn add jsonwebtoken    //    npm install jsonwebtoken
  1. 导入需要的包
var jwt = require('jsonwebtoken');
var fs = require("fs")
var path = require("path")
  1. 开始创建 token

共有 4 种写法,任选其一

  • { foo: 'bar' } 是你要解析的数据(对象形式,一般是用一个变量放那)
  1. 简单的创建,只有一段(默认同步符号(HMAC SHA256))
var token = jwt.sign({ foo: 'bar' }, 'shhhhh');

在这里插入图片描述


二、三 方法相同

名称:非对称加密算法
运行:后端生成的token进行私钥加密,加密完成后给前端,前端每次请求的时候都需要将私钥加密的token传给token,后端在需要进行公钥解密。

// 你想把它放在那个文件就在那个文件 cmd 执行以下代码(不能超出当前项目)
生成私钥  
- ssh-keygen -t rsa -b 2048 -f private.key
生成公钥  // window电脑不支持 openssl 代码,使用 git 提供的控制台书写即可
- openssl rsa -in private.key -pubout -outform PEM -out public.key

结果展示:
在这里插入图片描述

方法二较为复杂的创建,共三段(同步符号与RSA SHA256)(建议使用)

var privateKey = fs.readFileSync('private.key');
var token = jwt.sign({ foo: 'bar' }, privateKey, { algorithm: 'RS256'});

方法三使用函数创建(可以异步)

var privateKey = fs.readFileSync('private.key');
jwt.sign({ foo: 'bar' }, privateKey, { algorithm: 'RS256' }, function(err, token) {
  console.log(token);
});

在这里插入图片描述


二、三 共同用到的单词

  • private.key 为生成密钥的程序所在地
  • 一般这样写 let privateKey = fs.readFileSync(path.resolve(__dirname,"../keys/private.key"))
  • path.resolve 该方法将一些的 路径/路径段 解析为绝对路径
  • algorithm:加密算法(默认值:HS256)
  • expiresIn:以秒表示或描述时间跨度zeit / ms的字符串。如60,“2 days”,“10h”,“7d”,Expiration time,过期时间

方法四将时间回退到 xx 秒之前的 token(Backdate a jwt 30 seconds)

var older_token = jwt.sign({ foo: 'bar', iat: Math.floor(Date.now() / 1000) - 30 }, 'shhhhh');

在这里插入图片描述

  1. 调用

定义的这个 token 就是结果,直接调用即可

  • 注意:要有 给它个数据 data 让他生成 token (对象)
console.log(token)

全部代码参考

var jwt = require('jsonwebtoken');
var fs = require("fs")
var path = require("path")


//创建token令牌
function genToken(data){
    var token = jwt.sign({ foo: 'bar' }, '2424234234243');
    return token
}  

console.log(genToken({username:"张三",psw:"13235474322edest"}))
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值