使用npm下载包:

npm i jsonwebtoken --save

引入此包:

const jsonwebtoken =require('jsonwebtoken');

JWT的组成:

JWT由三部分组成,每一部分使用“.”进行分割

这三部分分别是:Header 包括{

'jyp':'JWT', //表示token类型

'alg':'hs256' //表示算法名称,因为加密需要设计算法,所以需要规定算法

} jsonwebtoken会对这个头信息进行base64加密,就成为了JWT字符串的第一部分

payload部分:

{

'':'',

'':'',

'':''

}

	signature部分:此部分对前两部分进行拼接,然后对拼接结果再次进行加密
var encodeString=base64UrlEncode(header)+'.'+base64Urlcode(payload);
var signature=HMACSHA256(encodedString,'secret')

前两个部分主要是用来保护用户信息的安全性

用户的信息主要是放在了payload部分了

jwt的使用方式:

客户端收到服务器返回的jwt之后,通常会将它储存在localStoreage或者sessionStoreage中

此后客户端每次与服务器通信。都要带上jwt的字符串,从而进行身份验证。

也就是说再vue项目中需要使用到axios的拦截器,将一些以固定路径开头的请求再请求头上面加上一个加密过的token验证

定义一个密钥: 也就是一个变量,随便是什么都可以 const a= ”dashauige“

jwt.sign()方法,此方法包含三个参数,三个参数分别为:用户信息对象,加密密钥,配置对象

配置对象这里有一个属性为expiresIn,用来规定token过期的时间

例:token:jwt.sign({name:"shuaige"},miyao,{expiresIn:"30s"})

一般此方法是后端接收到请求之后用这个方法来生成一个jwt字符串返回给前端

jwt.verify(两个参数)两个参数分别表示:

第一个参数表示:刚才后端返回过来的经过加密的token字符串

第二个参数表示:刚才返回字段的密钥,用来解析刚才的那个token字符串

再nodejs中联合起来一般就是:

const jsonwebtoken =require("jsonwebtoken");

const pasing ="pasing";

const JWT={

// 此方法用于生成一个token字段

generate(value,exprires){

return jsonwebtoken.sign(value,pasing,{expiresIn:exprires})

},

// 此方法用于解析token字段

verify(token){

try{

return jsonwebtoken.verify(token,pasing)

}catch(e){

return false

}

}

}

// 创建一个token返回给前端

const token = JWT.generate({name:'pasing'},"10s");

// 拿到前端发送过来的token然后进行校验,如果校验通过那么就能够实现跳转

console.log(JWT.verify(token));

setTimeout(()=>{

console.log(JWT.verify(token));

},11000)

module.exports=JWT

最新文章

  1. ivqBlog 开源博客 (angularjs + express + mongodb)
  2. js 数组的判断
  3. android 弹出框(输入框和选择框)
  4. sublime Text 3的默认快捷键大全
  5. Android SDK Manager无法更新问题解决
  6. Atitit.软件的仪表板(8)--os子系统--监控资源使用情况
  7. 开涛spring3(5.1&5.2) - Spring表达式语言 之 5.1 概述 5.2 SpEL基础
  8. PowerShell 官方下载地址
  9. Eureka 配置
  10. Hibernate 对象关系映射文件
  11. c# listview数据预览(转载的放在这里备用)
  12. MySQL数据库优化_索引
  13. html表格的基本用法
  14. Pandas之Dateframe 实现Excel读取与写入
  15. JavaEE进阶——全文检索之Solr7.4服务器
  16. MVC部分视图
  17. asterisk控制台取消NOTICE信息
  18. Linux下搜索命令
  19. luogu4931. 情侣?给我烧了!(加强版)(错位排列)
  20. 转换Excel格式

热门文章

  1. ubuntu 备份系统
  2. 《价值流动-Project To Product》读后感
  3. Vite 项目添加 Sass/Scss 并配置全局样式
  4. Postgresql之闪回数据库示例
  5. ABAP 拼接PDF
  6. 下拉刷新 get请求 post请求 onLoad
  7. 多个mysql版本并行运行
  8. element+Vue el-form组件进行查询时,当输入框仅有一项时,回车自动提交表单,浏览器会刷新页面
  9. Oracle RAC单节点启停
  10. Dockerfile自定义镜像