pwindy  
在完成任务的同时,还需要不断“复盘”,不论你多么的忙,都需要留下时间思考,可以思考哪些地方做的好,哪些地方我们可以改进,应该如何改进,注重总结才是王道

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)

posted on 2024-06-26 14:33  pwindy  阅读(2)  评论(0编辑  收藏  举报