// 文章表
let tb_list = [
{
id: 1,
content: "好的文章",
// 属于哪个用户发布的
userId: 1,
},
{
id: 2,
content: "好的文章",
userId: 1,
},
{
id: 3,
content: "好的文章",
userId: 2,
},
];
// 用户表
let tb_user = [
{
id: 1,
content: "用户a",
},
{
id: 2,
content: "用户b",
},
];
现在存在一个问题是:
有一个页面获取所有的文章列表,自己发布文章的显示删除按钮,别人的不显示删除按钮
之前的做法是删除接口只传 id 过去就可以删除了
调用一个 del 接口 -http://localhost:8001/del?id=1
但是这样子发现用户在控制台可以看到请求回来的列表数据,能够看到所有的 id
因为知道请求接口,这样子发现会被用户用接口来攻击了,全部给删除了
现在的做法是用 jwt 的方式,加了一个 jwt 的方法在 header 上面,里面把用户的 id 存进去了,后端通过 jwt 可以解析出这个请求是哪个用户,然后删除的时候用 jwt 的 userId 和文字的 userId 对比,如果是同一个就可以删除
但是这个方法感觉有点怪怪的
这样子数据库所有的表都要加上一个可以操作的 id 来作为权限判断
还有一个就是多角色操作,因为这个文章列表,管理员在管理后台也是可以帮助删除的
这样子不是每个数据都要加上一个 adminList 的字段了,并且是个数组,因为管理后台有多个管理员
现在的逻辑就是先判断用户是否匹配,不匹配则匹配管理员,感觉要崩了
因为整个系统还有很多个表,这样子不是要很大量的工作吗 T_T
让后端拿到id后再校验下当前用户有没有权限就行