我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何在node.js中使用​JsonWebToken模块进行token加密

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何在node.js中使用​JsonWebToken模块进行token加密

一、token

1、什么是token

​ ‘令牌’的意思,是一个字符串,在客户端第一次请求服务器时由服务器生成,然后响应给客户端(保存),当客户端再次请求服务器时,带上这个token,就不需要再带用户名和密码。

2、作用

​ (1)防止表单重复提交:

​ (2)进行身份验证:

​ a、为什么要进行身份认证:基于http协议的请求,无状态(当客户端与服务器之间的请求-响应过程完成后,客户端和服务器就断开了联系、服务器无法记录或跟踪客户端)。当客户端再次向服务器发起请求的时候,服务器需要对客户端的身份进行认证。

 b、传统的身份认证方式:

​ cookie:在服务器端生成,保存在客户端。

​ session:在服务器端生成,保存在服务器端

​ c、token认证:在服务器端不需要保存用户的身份信息,流程如下:

        ​ (a). 客户端使用用户名和密码请求登录。

​         (b). 服务端收到请求,验证用户名和密码。

​         (c). 验证成功后,服务端会生成一个token,然后把这个token发送给客户端。

        ​ (d). 客户端收到token后把它存储起来,可以放在cookie或者Local Storage(本地存储)里。

​         (e). 客户端每次向服务端发送请求的时候都需要带上服务端发给的token。

        (f). 服务端收到请求,然后去验证客户端请求里面带着token,如果验证成功,就向客户端

                返回请求的数据。

​ d、token的本质:

        是对用户的信息进行加密、解密,因此保存在客户端的token是加密后的一个字符串

二、Express中实现token的方法:

1、使用JWT模块:JsonWebToken

​ JWT的函数:

sign(加密的数据,加密的密钥,其他参数);返回值是一个加密后的字符串

verify(token,加密的密钥,[options]);验证token,返回值是一个对象,加密数据的信息,包括有效期

​ decode(token,加密的密钥);解密的方法。返回值是一个对象,加密数据的信息,包括有效期

2、token验证的流程

​ (1)第一次向服务器发起登录请求时,没有token信息

​ (2)当用户登录后,在服务器端生成token(token中包含哪些信息由用户决定),然后将token响应给客户端

​ (3)当客户端接收到服务器端响应的token后,将token存入本地的缓存中(如localStorage、cookie)

​ (4)当客户端再次访问服务器时,需要在请求头中包含token;服务器在接收到客户端的请求后,先查找客户端的请求头中是否有

​ token,若没有,则表明该用户是非法用户,就不响应任何数据;若有token,则表明该用户是合法用户,就响应数据

3、Express中实现过程 ​

(1)安装、导入JsonWebToken模块 ​

(2)在登录接口中生成token并响应给客户端

(3)在客户端将接收到的token保存到本地缓存

​ (4)当客户端再次访问(包括未登录的访问——非法访问)服务器,服务器端会对token进行验证

 (5)客户端每次向服务器发起请求时都必须携带token,否则视为非法用户  

总结 

到此这篇关于如何在node.js中使用​JsonWebToken模块进行token加密的文章就介绍到这了,更多相关node.js进行token加密内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何在node.js中使用​JsonWebToken模块进行token加密

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在node.js中使用​JsonWebToken模块进行token加密

目前在web框架中最流行的身份验证是使用jsonwebtoken,简称jwt.可以设置加密方式,过期时间,存放个人信息,逆解析,下面这篇文章主要给大家介绍了关于如何在node.js中使用​JsonWebToken模块进行token加密的相关资料,需要的朋友可以参考下
2023-03-19

怎么在node.js中使用​JsonWebToken模块进行token加密

这篇文章主要讲解了“怎么在node.js中使用JsonWebToken模块进行token加密”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在node.js中使用JsonWebToken模
2023-07-05

如何在JAVA中使用MD5加密对密码进行加密

本篇文章为大家展示了如何在JAVA中使用MD5加密对密码进行加密,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.新建Md5.javapackage com.loger.md5;import jav
2023-05-31

如何在Java中使用RSA加密对密码进行加密解密

这期内容当中小编将会给大家带来有关如何在Java中使用RSA加密对密码进行加密解密,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体如下:public static void main(String[]
2023-05-31

如何在java中使用RSA算法对密码进行加密与解密

本篇文章给大家分享的是有关如何在java中使用RSA算法对密码进行加密与解密,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言: RSA是第一个比较完善的公开密钥算法,它既能
2023-05-31

Linux中如何使用age进行文件加密和解密

这篇文章将为大家详细讲解有关Linux中如何使用age进行文件加密和解密,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。age 是一个简单的、易于使用的工具,允许你用一个密码来加密和解密文件。文件的保护和敏
2023-06-27

如何在 Golang 中使用随机数进行模拟?

使用 math/rand 包进行随机数模拟:导入 math/rand 包。使用 time.now().unixnano() 初始化随机数生成器。使用 rand.intn(n) 生成 0 到 n-1 之间的随机整数。使用 rand.float
如何在 Golang 中使用随机数进行模拟?
2024-05-13

如何使用Python中的pickle模块进行对象序列化

如何使用Python中的pickle模块进行对象序列化概述:在Python编程中,我们经常需要将数据保存到文件或通过网络传输。而对象序列化是一种将对象转化为可存储或传输的格式的过程,而pickle模块正是Python中一种常用的序列化模块。
2023-10-22

如何使用Python中的模块管理工具进行软件开发

如何使用Python中的模块管理工具进行软件开发在Python的世界里,有许多优秀的第三方模块可以帮助我们更高效地开发软件。然而,当项目规模逐渐增大时,引入的模块也会越来越多,这就需要一个良好的模块管理工具来管理这些模块之间的依赖关系。Py
2023-10-22

如何在Python中使用Tqdm模块实现一个进度条功能

本文章向大家介绍如何在Python中使用Tqdm模块实现一个进度条功能,主要包括如何在Python中使用Tqdm模块实现一个进度条功能的使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Pytho
2023-06-06

如何在Python中使用正则表达式进行模式匹配

正则表达式是一种强大的文本匹配工具,可以在Python中使用re模块来进行模式匹配。以下是使用正则表达式进行模式匹配的一般步骤:
如何在Python中使用正则表达式进行模式匹配
2024-02-22

Python中如何对MySQL数据库中的数据进行加密和解密操作?(使用Python如何加密和解密MySQL数据库中的数据?)

本文详细介绍了如何使用Python对MySQL数据库中的数据进行加密和解密。加密过程涉及安装加密库、生成随机密钥、加密数据并将其存储在数据库中。解密过程涉及加载密钥、解密数据并使用解密后的数据。最佳实践包括使用强密钥、安全地存储密钥和遵循安全编码实践。文中还提供了使用Fernet加密库的示例。
Python中如何对MySQL数据库中的数据进行加密和解密操作?(使用Python如何加密和解密MySQL数据库中的数据?)
2024-04-02

编程热搜

目录