前言
- 传统 session 验证
传统的服务端验证使用的技术是 session 来实现,就是把登录信息存在服务端,每次通过访问 sessionid 来进行获取信息,但这样会出现一些问题,比如每当用户发起请求时,服务端都需要创建一个对象用于存储这些信息,这样当越来越多的用户访问,那么服务端创建的 session 也就越来越多,从而导致内存的开销也越来越大。
- 为什么要使用 token
基于 token 的身份验证是无状态的,可以不用将信息存储在服务器端或者 session 中,token 依赖于请求头传输,当客户端发送请求时,只需将 token 信息放到 header 请求头一并发给服务端,服务端对 token 做解析认证即可。
基于 token 验证的步骤如下:
- 登陆时,客户端发送用户名和密码
- 服务端验证用户名密码是否正确,校验通过会生成一个有时效的 token 串,发送给客户端
- 客户端存储 token,一般都会存储在 localStorage 或者 cookie 里面
- 客户端每次请求时都带有 token,可以将其放在请求头中里,每次请求都携带 token
- 服务端验证 token,所有需要校验身份的接口都会被校验 token,若 token
解析后的数据包含用户身份信息,则身份验证通过,返回数据
一、简介
JWT(JSON Web Token) 编码解码模块
二、使用
安装
npm install --save jwt-simple
生成token & 解析token
const tokenExpiresTime = 1000 * 60 * 60 * 24 * 7
//秘钥