1.JWT
1.1.服务端第一次生成加密的token字符串
客户端提交用户名和密码给服务器,服务器收到后,进行确认以验证用户名和密码的正确性(查找数据库是否有相应的用户名和密码)。当服务器端验证通过后,服务器会将用户信息加密并生产token字符串。服务端第一次响应,将生成的token字符串传送给客户端并保存在客户端的local storage 或者session storage中。
1.2.客户端发送带token的请求
当客户端接收到服务端加密的token之后,再一次向服务端发起一次验证请求,在这个验证请求中,客户端需要在请求头的Authorization字段中写入从服务端收到的加密的token字符串,再发送给服务端。服务端将客户端发过来的token字符串还原为用户的信息对象进行身份验证。当用户身份验证成功后,服务器将根据当前用户请求生成特定的响应内容,响应给客户端。
1.3.token服务端加密和token服务端解析
在Node中,使用jsonwebtoken中间件,来对token字符串进行加密。
使用express-jwt中间件来对客户端发送的token,解析还原成JSON对象包。
2.代码逻辑
2.1.定义配置
定义秘钥和token的过期时间
2.2.定义生成token的方法(token加密)
2.3.定义一个类Auth,在该类中定义权限、定义验证token是否合法的
3.验证用户名和密码
4.创建用户认证路由、注册用户认证路由
4.1.创建用户认证路由
4.2.注册用户认证路由
5.用Apipost验证
5.1.获取加密的token
5.2.客户端把加密的token,发送给服务端
6.验证页面的访问权限
6.1.当前账户的权限是2
6.2.访问article所有文章的权限是3
6.3.用apipost验证---权限不足
发送请求的时候,一定要在header中的Authorization属性中加上token,才可以请求成功(200)