马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册账号
x
发帖的人,可以自己删除评论。
这样就会一片祥和,而且不需要管理了。
这个功能,无论是从前端还是后端,都很容易实现。
最基础的三张表结构示例: 1)User 表 2)Post 表(主帖)
post_id
author_id(发帖人 user_id)
3)Reply 表(回帖)
reply_id
post_id
author_id(回帖人 user_id)
关键点
必须能通过 reply → post → post.author_id
查到「这个回帖属于谁的帖子」。 三、权限判断逻辑(核心逻辑) 当有人点击“删除回帖”时,后端做如下判断: 伪代码(非常重要): if current_user.role in ["admin", "moderator"]:
allow_delete elif current_user.user_id == reply.author_id:
allow_delete # 删除自己的回帖 elif current_user.user_id == post.author_id:
allow_delete # 发帖人删除别人回帖(你要的功能) else:
deny_delete 这一步只能在后端做,前端只负责“显示或不显示按钮”。 四、前端怎么做(但不作为安全依据) 前端可以提前判断,提升体验: 显示「删除」按钮的条件
当前用户是 admin / moderator
或 当前用户是回帖作者
或 当前用户是主帖作者
但要记住一句话:
前端只是“提示”,真正的安全在后端。 五、API 设计建议(强烈推荐) DELETE /api/replies/{reply_id} 后端流程
根据 reply_id 查 reply
根据 reply.post_id 查 post
拿到 post.author_id
做上面的权限判断
有权限 → 删除(或软删除)
无权限 → 返回 403 Forbidden
六、强烈建议:不要物理删除 更专业的做法是「软删除」: Reply 表增加字段
is_deleted (boolean)
deleted_by (user_id)
deleted_at (timestamp)
这样好处是 前端展示 七、常见坑(你要避免的) 1)只在前端控制
→ 任何人都能用接口删别人内容(严重漏洞) 2)只判断 reply.author_id
→ 发帖人删不了回帖(你现在遇到的问题) 3)没区分“主帖作者”和“版主”
→ 权限混乱,后期不好扩展 |