一、token的作用
1、控制表单的重复提交:在表单中加入隐藏的表单控件,在这个隐藏的表单控件中带上token字符串。
2、身份验证∶用来验证向服务器发起请求(请求服务器的资源)的用户是否是合法的用户。经过登录后进入系统的用户是合法的用户
二、Express中实现token
1、使用JWT模块:JsonWebToken
(1)函数:
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并响应给客户端
![](https://img-blog.csdnimg.cn/4df9cd27c432487489b03bdce73eb788.png)
(3)在客户端将接收到的token保存到本地缓存
![](https://img-blog.csdnimg.cn/e994a8b396ef41a7a396940bafc4eca2.png)
(4)当客户端再次访问(包括未登录的访问----非法访问)服务器,服务器端会对token进行验证
(5)客户端每次向服务器发起请求时都必须携带token,负责就是非法数据
![](https://img-blog.csdnimg.cn/6a28eccc0c384036aa731045e0909c28.png)
版权归原作者 wdcsd_ 所有, 如有侵权,请联系我们删除。