使用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

nodejs配合jwt的更多相关文章

  1. 全栈项目|小书架|服务器开发-NodeJS 使用 JWT 实现登录认证

    通过这篇 全栈项目|小书架|服务器开发-JWT 详解 文章我们对JWT有了深入的了解,那么接下来介绍JWT如何在项目中使用. 安装 $ npm install jsonwebtoken 生成 Toke ...

  2. 利用Nodejs快速构建应用原型

    利用Nodejs快速构建应用原型 开发一个应用往往需要快速的构建原型,然后在此基础上设计和改进,前端可能立马能看到效果,但是后端业务逻辑不会那么快,这个时候其实我们需要额只是一些模拟数据,所以不需要真 ...

  3. nodejs项目文件搭建环境

    nodeJS,作为一门较为“新鲜的”的原因,近年来普遍受到一些前端想转为全栈的ITer青睐,在想用nodeJS配合数据库开发出一个小玩意的路上,萌新们第一步便要遇到就是环境的支持.node作为Java ...

  4. 基于webpack和vue.js搭建开发环境

    前言 在对着产品高举中指怒发心中之愤后,真正能够解决问题的是自身上的改变,有句话说的好:你虽然改变不了全世界,但是你有机会改变你自己.秉承着“不听老人言,吃亏在眼前”的优良作风,我还是决定玩火自焚. ...

  5. webpack + vuejs 基本配置(一)

    开始之前 本文包含以下技术,文中尽量给与详细的描述,并且附上参考链接,读者可以深入学习: 1.webpack2.Vue.js3.npm4.nodejs —- 这个就不给连接了,因为上面的连接都是在你实 ...

  6. webpack + vue

    开始之前 本文包含以下技术,文中尽量给与详细的描述,并且附上参考链接,读者可以深入学习: 1.webpack2.Vue.js3.npm4.ES6语法 前言 在对着产品高举中指怒发心中之愤后,真正能够解 ...

  7. webpack + vuejs(都是1.0的版本) 基本配置(一)

    开始之前 本文包含以下技术,文中尽量给与详细的描述,并且附上参考链接,读者可以深入学习: 1.webpack12.Vue.js13.npm4.nodejs —- 这个就不给连接了,因为上面的连接都是在 ...

  8. 服务器端渲染VS浏览器端渲染

    1)浏览器渲染和服务器渲染区别:何为渲染?如果我们只是想显示一堆不变的数据,那么我们直接写一个a.html丢到服务器上让客户端访问就可以了.但这是基本不可能的事情,数据一般是变化的.你不可能为每套数据 ...

  9. freess(未测试)

    freess 使用 nodejs 配合 shadowsocks-windows 实现FQ (windows) 使用方法: 如果你没有安装nodejs请先安装,访问 https://nodejs.org ...

  10. 【微信小程序】安装DingoApi开发小程序api

    1.安装 composer require dingo/api 2.发布配置: php artisan vendor:publish 选择DingoApi发布. 3.向.env文件添加配置 (1)项目 ...

随机推荐

  1. 树莓派VNC复制粘贴

    1.安装sudo apt install autocutsel 2.运行autocutsel -f

  2. Visual Studio 集成了.NET 升级助手插件

    .NET团队2023年2月16日在官方博客上发布了名为".NET Upgrade Assistant"的全新 Visual Studio 扩展,帮助开发人员升级.NET 应用程序. ...

  3. 罗姆BU32107EFV缩写词

    ADC Analog-to-Digital Converter Att Attenuation 衰减 AMix Analog Mixing AVol Analog Volume BPF Band-Pa ...

  4. [代码审计基础 14]某cms变量覆盖到N处漏洞

    PHP:5.4.5 设置调试:https://blog.csdn.net/m0_46641521/article/details/120107786 PHPCMS变量覆盖到SQL注入 0x01:路由分 ...

  5. [java安全基础 02]反射

    java反射 这一篇和上一篇对不上,这里是补一下java反射知识点 一个需求引出反射 请根据配置文件re.properties指定信息,创建Cat对象并调用方法hi classfullpath=com ...

  6. Tesseract图片文字识别

    如何进行图文识别? 百度api收费的,自己训练模型集费时费力,有没有训练好的库,我们拿过来直接用的呢? 有,那就是tesseract. 安装 pipenv install pytesseract pi ...

  7. URL带参数json传递进行解析

    注意参数格式是要加密的: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  8. rfid串口dma_delay()引发的问题

    接rfid读卡器的串口,有dma_delay()时,会有问题 现象是: 规律性的错误 解决办法:去掉dma_delay()即可

  9. 容忍和污点Taint和Toleration

    说明: Taint在一类服务器上打上污点,让不能容忍这个污点的Pod不能部署在打了污点的服务器上. Toleration是让Pod容忍节点上配置的污点,可以让一些需要特殊配置的Pod能够调用到具有 污 ...

  10. vue项目引用vue-pdf打包多出worker.js文件

    问题描述:项目要用到pdf预览功能,因为是vue项目就是直接导入了vue-pdf组件,但是在进行打包的时候在dist文件夹下面多个worker.js文件,导致项目部署后预览pdf直接报了404 方案一 ...