Nodejs项目中使用token验证,jwt,jsonwebtoken

JWT身份验证原理简单讲解与nodejs简单实现 目录前言JWT简单介绍node中使用JWT安装jsonwebtoken包签发token验证token 前言 上一篇【基于token的持久化登录讲解及其实现】讲到token的机制,以及token的2大特性,即:只有服务器能够签发token,服务器可以验证token是否由自己签发。 可是上一篇博客编写的时候,对token的理解还不够深入,上一篇博客的token是最最最基本的token验证,而现在互联网应用的登录验证普遍使用JWT,即 JSON WEB TOKEN 的规范化验证,所以今天来学习一蛤,并且学习如何在 阅读详情

目前 在web框架中最流行的身份验证是使用jsonwebtoken,简称jwt.可以设置加密方式,过期时间,存放个人信息,逆解析.

抽空研究了一下nodejs的jwt如何做,下面来记录一下

使用的包是

"jsonwebtoken": "^8.3.0"

jwt github 地址

 

主要用到的方法是

生成token  jwt.sign()
验证token  jwt.verify()

 

签名方法:jwt.sign(payload, secretOrPrivateKey, [options, callback])

payload 是一个json对象或者是一个可以json化的buffer或字符串 这个对象可以存储用户id,会话信息等,这里的信息都是可以使用jwt.verify()方法拿到的. 

secretOrPrivateKey是加密的key或者叫做密匙,不知道密匙是无法解析payload参数的.

options 参数 是一个json对象

expiresIn : 表示有效期  不带单位默认为秒  如带单位如: "2 days", "10h", "7d"

......

还有很多参数设置,具体请查看官文

 

如生成一个token,把用户id放进去,设置有效期为1小时

const jwt = require('jsonwebtoken')
let token = jwt.sign({user: '1234'}, 'Fizz', {expiresIn: 60 * 60})
console.log(token)

 就这么简单

 

解析验证方法:jwt.verify(token, secretOrPublicKey, [options, callback])

token: 就是token字符串 由jwt.sign()方法生成的

secretOrPublicKey:是加密的key,用于解析生成token时的payload参数

options:

设置一些解密的方法....

使用方法

jwt.verify(token, 'Fizz', function (err, data) {
  if (err) console.log(err)
  console.log('解析的数据', data)
})

 使用方法就是这么简单

可以将token的验证做成做一个中间件,在路由中使用,可用于做登录拦截.获得会话信息

 

谢谢阅读.如果觉得对你有帮助请记得点赞或收藏.欢迎留言讨论.你的支持是我出产优秀博客的动力.

最新Win10离线安装.NET Framework 3.5的方法(附离线包2022/3/22) win10 .net framework 3.5离线安装 阅读详情

相关推荐

从Jira到Notion:用Sequential Thinking重构你的敏捷工作流(含GPT-6配置模板)

本文探讨了如何利用Sequential Thinking这一AI认知模型,重构敏捷开发工作流。通过连接Jira、Notion等工具,构建动态依赖图谱,实现从被动响应到主动规划的转变。文章提供了详细的配置教程和GPT-6配置模板,帮助团队实现任务自动拆解、智能看板生成与跨平台协调,从而提升项目管理效率。

gpt4scribbler的博客 206

jsonwebtoken 使用教程

本系列是我的常用 koa 中间件使用笔记,防止忘记使用方法而作记录 基本使用 const jwt = require('jsonwebtoken'); const secretKey = '&*^R*G&(FRDwp4eg3' //secret const expiresIn = 60 * 60 * 24 * 30; //时效 (秒) //生成jwt function generateToken(uid) { const token = jwt.sign..

nullccc的博客 2945

Flutter项目在M1/M2 Mac上跑iOS模拟器报错?手把手教你搞定‘arm64架构不兼容’问题

本文详细解析了Flutter项目在M1/M2 Mac上运行iOS模拟器时遇到的‘arm64架构不兼容’问题,提供了多种解决方案,包括排除模拟器的arm64架构、强制使用x86_64架构以及修改插件Podspec文件。帮助开发者快速解决架构兼容性问题,提升开发效率。

weixin_33713707的博客 338

JsonWebToken(jwt)用法及其优势

jsonwebtoken 具体的实践可以看我github上的例子。 用法 jwt.sign(payload, secretOrPrivateKey, [options, callback]) (异步)如果提供回调,则使用err或JWT 调用回调。 (同步)将JsonWebToken返回为字符串。 payload必须是一个object, buffer或者string。请注意, exp只有当payload是object字面量时才可以设置。 secretOrPrivateKey 是包含HMAC算法的密

u010227042的博客 1125

Windows 11下JDK 21与JMeter 5.6.3环境配置全攻略

环境变量是操作系统管理软件路径与执行权限的核心机制,它通过预设的键值对,指引系统在调用命令时定位可执行文件。理解其工作原理,是解决软件安装后“命令未找到”等问题的关键。对于Java生态而言,正确配置JAVA_HOME和Path变量,不仅能让java、javac等基础命令全局可用,更是Maven、Gradle乃至JMeter等众多工具链顺畅运行的基石。JMeter作为一款基于Java开发的经典性能测试与接口测试工具,其稳定运行高度依赖健全的Java环境。本文聚焦于在Windows 11系统上,为JDK 21与

weixin_30940783的博客 451

手把手教你用组态王KingSCADA 3.53读取S7-1200 PLC数据(保姆级图文教程)

本文提供了一份详细的组态王KingSCADA 3.53读取S7-1200 PLC数据的实战教程,涵盖从硬件连接到软件配置、变量映射到故障排查的全流程。特别针对初学者常见问题提供解决方案,帮助工程师快速实现稳定通信,提升工业自动化系统效率。

weixin_26876073的博客 681

JWT---Token身份令牌验证

什么是Token? 在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。一般我们所说的的token大多是指用于身份验证的token 为什么使用token? 我们需要每次都知道当前请求的人是谁,但是又不想每次都让他提交用户名和密码,这时就需要有一个等同于用户名密码也...

weixin_47339511的博客 1517

【Java】JAVA知识总结浅析

Java是一门功能强大的编程语言,广泛应用于多个领域。Java的编程思想,包括面向过程和面向对象编程,Java的发展历史,各版本的特点,JVM原理,数据类型,Java SE与Java EE的区别,应用场景,JDK与JDBC,Java Web技术,Spring Boot系列,以及MyBatis框架的基本实现,最后还将讨论Java在大数据、人工智能、嵌入式和Android等领域的应用。

wnm23的专栏 5252

用户信息验证 session, jwt

前言 计算机如何确认当前所声称为某种身份的用户确实是所声称的用户,通过node.js的学习我了解到了一个重要的原则: 永远不要相信前端发送过来的任何信息。 了解HTTP的无状态性 客户端的每次请求都是相互独立的,服务器不会主动的储存每次http请求; 突破HTTP无状态限制 第一次的http请求通过发送独一无二的验证信息给客户端——cookie,以后用户每次发送http请求时都会将cookie发送给服务器,服务器就可以识别用户信息了。 了解cook...

helgeal的博客 505

jira bug 仪表盘

背景: 更直观管理bug,方便项目组内人员,创建、修改、关闭bug 使用的场景: 筛选器结果:可用来展示open、什么级别open的问题,方便督促开发快速解决问题 2维筛选器统计:统计经办人下bug状态是open,具体什么等级的数量。有利于开发可以调整工作进度 问题统计: 统计某版本,产出对应等级的bug数量,用于后期测试报告的编写 饼图:直观展示筛选人员的bug,例如想要看出每位测试人员产出bug比例 创建与解决的问题对比图: ...

chuanying_xiaoqi的博客 815

电脑技巧:Hyper-V安装UOS操作系统图文教程

今天给大家分享微软官方Hyper-v虚拟机管理软件安装UOS操作系统图文教程,感兴趣的朋友也可以下载试一试,当然有啥问题也可以互相沟通交流!

IT技术分享社区 4707

jsonwebtoken的基本使用

详情参考官方文档 jsonwebtoken 相关方法的封装 const jwt = require("jsonwebtoken") const secret = "kjafhkjsal"; let createToken = (data,expiresIn)=>{//创建token的方法 let obj = {}; obj.data = data || {};//存入tok...

weixin_45578480的博客 3484

VMware如何安装img镜像,VMware如何安装openwrt软路由(含相关工具镜像)

VMware如何安装img镜像,VMware如何安装openwrt软路由(含相关工具镜像)

XiaoqiangClub的博客 4010

nodejs jwt java_Nodejs项目中使用token验证,jwt,jsonwebtoken

目前 在web框架中最流行的身份验证是使用jsonwebtoken,简称jwt.可以设置加密方式,过期时间,存放个人信息,逆解析.抽空研究了一下nodejs的jwt如何做,下面来记录一下使用的包是"jsonwebtoken":"^8.3.0"主要用到的方法是生成tokenjwt.sign()验证tokenjwt.verify()签名方法:jwt.sign(payload, secretO...

weixin_39885412的博客 443

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

NodeJS 使用 jsonwebtoken 创建 JWT 格式的 token 和验证

背景 在 NodeJS web server 项目上,我们需要做登录验证,通过 用户名和密码 换取 token 是常用的方式。 相关知识 JSON Web Token (JWT) 介绍 它是 一种 JSON 表达的 token 格式。一个 token 包含了三部分:header,payload,signature。 header 是 token 的一部分,用来存放 token 的...

张云飞Vir的专栏 381

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

NodeJS JWT Authentication Sample核心功能解析:用户注册与登录实战教程

NodeJS JWT Authentication Sample是一个基于NodeJS构建的API项目,专注于实现用户名密码认证与JWT(JSON Web Token)授权功能。本教程将带你快速掌握这个项目的核心功能,包括用户注册、登录验证以及JWT令牌生成的完整流程,帮助新手轻松入门NodeJS身份认证开发。 ## 📋 项目核心依赖与架构概览 项目采用Express框架构建RESTful

gitblog_00179的博客 909

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Nodejs中使用jsonwebtoken(JWT)生成token的场景使用

Ⅰ- 壹 - jsonwebtoken简介 一 为什么需要 token http 无状态 session 无法跨服务器 cors 跨域以后 cookie 无法使用 在前后分离的项目中,每次请求session都会变化,前端调用后端api接口,因此使用cors = require('cors')来解决了跨域问题,而跨域对于cookie来说,就是两个不同的网站,因此session会不停的变。 二 什么是token token是由三段式加密字符串组成以.分开例如xxxxxxxxxxxxxxxxxxx

三季雨 7996

node笔记:node express 下 jsonwebtoken+express-jwt实现token登录验证两种方式(尽力写详细了)

之前用过token,也知道是用来授权的,但是不知道后端如何生成,为什么一定要用token,token又是怎么验证的等等,希望这篇文章帮到和我一样学啥忘啥的笨蛋… 1.简单了解JWT 1.JWT 的数据结构 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7fSwidHlwZSI6ImV4cHJlc3Mtand0IiwiY3RpbWUiOjE2MDkwNzk0OTkzMzYsImlhdCI6MTYwOTA3OTQ5OSwiZXhwIjoxNjA5MDgzMDk5

weixin_45295262的博客 2万+

nodejs中使用jsonwebtoken

nodejs 中使用 jsonwebtoken 安装jsonwebtoken npm install jsonwebtoken -s 签名方法: jwt.sign(payload, secretOrPrivateKey, [options, callback]) 解析验证方法: jwt.verify(token, secretOrPublicKey, [options, callback]) ...

艾小逗 1872

nodejs express-jwt使用

作用是什么 express-jwt是nodejs的一个中间件,他来验证指定http请求的JsonWebTokens的有效性,如果有效就将JsonWebTokens的值设置到req.user里面,然后路由到相应的router。 此模块允许您使用Node.js应用程序中的JWT令牌来验证HTTP请求。 JWT通常用于保护API端点。 express-jwt和jsonwebtoken是什么关系 ...

霓虹深处 3878

基于jsonwebtoken+passport实现token验证拦截

1. JSON Web Token JWT是实现token技术的一种解决方案,是目前最流行的跨域身份验证解决方案。今天我们主要聊一聊基于nodeJS使用jsonwebtoken实现token。 1.1. JWT的基本组成 JWT对象是一个很长的字符串,看起来没有任何规律,通过“.”分隔符分为三个字串。字串之间不换行。如图所示,JWT Token包括三个部分。 1.1.1. Header JW...

weixin_38207472的博客 1071

nodejs jwt java_NodeJS 基于 JWT 实现身份验证(token、自动登陆)

JWT 简单的原理介绍JWT(Json Web Token)是一种身份验证及授权方案,简单的说就是调用端调用 api 时,附带上一个由 api 端颁发的 token,以此来验证调用者的授权信息。通过一种加密规则(如 HS256)+ secret 生成一串字符串(token),token 字符串中一般含有过期时间和签名信息,根据签名和过期时间,就可以判断当前 token 是否有效。// newTok...

weixin_35993037的博客 695

nodejs使用JWT(全)

nodejs使JWT(全)

weixin_68658847的博客 6070

008 nodejs服务端jsonwebtoken实现token签名和验证

安装必要模块 npm i passport-jwt -s 建立passport验证token模块 //引入passport-jwt模块 const JwtStrategy = require('passport-jwt').Strategy, ExtractJwt = require('passport-jwt').ExtractJwt const mysql...

竹映平昔 537

nodejs 使用 jwt 验证 token

配置模块 const JwtStrategy = require('passport-jwt').Strategy, ExtractJwt = require('passport-jwt').ExtractJwt const mongoose = require("mongoose") const User = mongoose.model("users") const opts = {...

wwh120105150的博客 701

NodeJS 中配置token,要求请求头传递token,在koa框架下

NodeJS 中配置token 首先安装jsonwebtoken第三方模块 npm i jsonwebtoken 文档说明 使用的基本格式 jwt.sign(payload,secret,expiresIn) 其中payload是需要保存的数据 secret密匙,在设置token和解析token的时候都需要用到 expiresIn可以设置过期的时间 const jwt= require(...

小火车况且况且况且的博客 4104
上一篇: 使用crypto.js进行信息加密解密
下一篇: Nuxt教程
拿我格子衫来
拿我格子衫来 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄10年 6万+粉丝 858原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拿我格子衫来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值