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

 更新时间:2023年03月17日 11:31:43   作者:。Idea  
目前在web框架中最流行的身份验证是使用jsonwebtoken,简称jwt.可以设置加密方式,过期时间,存放个人信息,逆解析,下面这篇文章主要给大家介绍了关于如何在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加密内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Node.js卸载与重装及zip与msi安装详解

    Node.js卸载与重装及zip与msi安装详解

    Node.js是一个JavaScript运行环境,可以使JavaScript这类脚本语言编写出来的代码运行速度获得极大提升,下面这篇文章主要给大家介绍了关于Node.js卸载与重装及zip与msi安装的相关资料,需要的朋友可以参考下
    2023-01-01
  • 在Node.js中判定文件是否可执行的方法详解

    在Node.js中判定文件是否可执行的方法详解

    在进行前端开发时,经常需要处理各种文件权限的问题,特别是在Node.js环境中,你可能想要判断某个文件是否具有可执行权限,本文将详细介绍如何使用isexe模块来进行这一操作,需要的朋友可以参考下
    2024-05-05
  • VsCode无法识别node问题解决过程

    VsCode无法识别node问题解决过程

    这篇文章主要给大家介绍了关于VsCode无法识别node问题解决的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-07-07
  • nodejs中实现sleep功能实例

    nodejs中实现sleep功能实例

    这篇文章主要介绍了nodejs中实现sleep功能实例,本文讲解了sleep功能的开发过程和使用效果及性能测试,需要的朋友可以参考下
    2015-03-03
  • 说说node中的可读流和可写流的区别

    说说node中的可读流和可写流的区别

    这篇文章主要介绍了说说node中的可读流和可写流的区别,详细的介绍了可读流和可写流,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • node.js利用express自动搭建项目的全过程

    node.js利用express自动搭建项目的全过程

    这篇文章主要给大家介绍了关于node.js利用express自动搭建项目的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 你一定会收藏的Nodejs代码片段

    你一定会收藏的Nodejs代码片段

    Nodejs值得收集的代码片段,大家可以收藏起来,运用到之后的工作中,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • Node.js调用java之node-java问题

    Node.js调用java之node-java问题

    这篇文章主要介绍了Node.js调用java之node-java问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • nodejs加密Crypto的实例代码

    nodejs加密Crypto的实例代码

    下面小编就为大家带来一篇nodejs加密Crypto的实例代码。小编觉得挺不错的, 现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • Node中文件断点续传原理和方法总结

    Node中文件断点续传原理和方法总结

    在之前做过一个小项目,涉及到了文件上传,在大文件上面使用了断点续传,降低了服务器方面的压力,现在小编把Node中文件断点续传原理和方法总结分享给大家,感兴趣的朋友一起看看吧
    2022-01-01

最新评论