蝙蝠软件token已过期啥意思(详解token已过期含义及解决方法)

前几天发的文章说了node结合mongodb和前端连接的具体使用方法。后面我又想到了,要做就做的像那么回事。把token验证也加进去。但是之前重来也没有搞过这个东西,只是听说过,不知道怎么下手。所以这一块着实饶了一些弯子,好在有广大的网友帮忙,最终欧冠也是解决了。所以这次就来说说我对它的用法。传统基于服务器的验证方式传统的验证方式是基于服务器的,就是把登陆信息存在服务端,每次登陆需要去辨别存储的登陆信息,一般都是通过session来实现,我们比较老的项目都是通过存储session来实现登陆验证的。这样会有一些问题,比如每次认证用户发起请求时,服务器都需要创建一个用记录来存储信息,当越来越多的用户发起请求时,内存的开销也会不断的增加基于token的验证原理基于token的身份验证是无状态的,我们不用将信息存储在服务器或者session中。token通过请求头传输,而不是把认证信息存储在服务器或者session中,就意味着可以从任意一种可以发送HTTP请求的终端向服务器发送请求。基于Token的身份验证的过程如下:1. 登陆时,客户端发送用户名密码2. 服务端验证用户名密码是否正确,校验通过就会生成一个有时效的token串,发送给客户端3. 客户端储存token,一般都会存储在localStorage或者cookie里面4. 客户端每次请求时都带有token,可以将其放在请求头里,每次请求都携带token5. 服务端验证token,所有需要校验身份的接口都会被校验token,若token解析后的数据包含用户身份信息,则身份验证通过,返回数据我用的是express-jwt,首先就是对服务端代码的修改,要加的代码就是下面这两段。下面说的依赖都要自己下载。

蝙蝠软件token已过期啥意思(详解token已过期含义及解决方法)

其中的setting.js代码如下图。红框里的方法后面会用到的。首先调用这两个方法可以获得对于的公钥和私钥。这两个密钥一定要保存好。其中公钥是个前端使用的,用来加密一些数据,比如密码。私钥是后端用来解密的。

先看看前端如何使用公钥加密,先提前封装一个函数用来加密。在使用的时候调用这个方法即可。

这时候前端就把加密好的密码发给了后端,就算别人拦截了密码也不知道是什么,因为他没有不知道解密的密钥是什么。再来后端拿到密码后怎么解密的,后端也是提前写好了解密的函数,在使用的时候调用。

这样就可以拿到密码了,后面再继续做一些别的判断。在登录成功后后端会生成一个唯一的token返回给前端,前端只需要在每次的请求头中加入这个token即可,后端会判断这个token值有没有过期。当然这个方法也是提前写好的。

token过期的时间和请求头都是可以自己设置的。

好了关于node结合token验证登录过期的内容就是这么多了。

发表评论

登录后才能评论