You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Phone-book通讯录添加用户自主删除个人存储手机号的功能

实现思路与步骤

1. 数据库表结构前置校验

首先要确保你的手机号存储表和用户ID做了强绑定,参考user_phones表的必要字段:

  • id 主键,单条手机号记录的唯一标识
  • user_id 关联用户表的用户ID,标记该条手机号的所属人
  • phone_number 存储的手机号内容
    核心原则:所有删除操作必须基于当前登录用户的user_id做权限校验,禁止仅通过手机号记录ID直接执行删除,避免越权删除他人数据

2. 后端接口实现

2.1 接口参数约定

仅接收两类参数:

  • 当前登录用户的身份凭证(从请求头获取,比如session、JWT token,禁止前端传递用户ID参数)
  • 待删除的手机号记录ID phone_record_id

2.2 接口逻辑流程

// 伪代码示例
1. 解析请求头的身份凭证,提取当前登录用户的user_id,校验登录状态有效性
2. 校验phone_record_id是否为合法数值
3. 到user_phones表执行查询:where id = phone_record_id and user_id = 当前用户id
4. 无匹配记录时返回错误:"无权删除该手机号或记录不存在"
5. 匹配到记录时执行删除语句:delete from user_phones where id = phone_record_id and user_id = 当前用户id
6. 返回操作成功响应

注意:删除操作必须同时携带id和user_id两个查询条件,哪怕上一步已经做过查询校验,双重校验避免并发问题或者查询逻辑漏洞导致的误删

3. 前端交互实现

  • 用户登录进入手机号列表页后,每条归属用户本人的手机号条目后新增「删除」按钮
  • 点击删除按钮弹出二次确认弹窗,避免用户误操作
  • 用户确认删除后调用后端删除接口,请求头携带当前用户的身份凭证,参数携带对应手机号的记录ID
  • 接口返回成功后,直接从当前列表移除对应条目,无需重新拉取全量列表提升体验
  • 接口返回错误时,直接将错误信息提示给用户即可

4. 安全优化点

  • 禁止前端传递user_id指定删除归属,所有用户身份必须从服务端登录态中提取
  • 不要直接用手机号作为删除条件,避免同一用户存储多条相同手机号时误删全部记录,必须用唯一的记录ID作为删除依据
  • 如有软删除需求,将delete操作替换为update is_deleted字段为1即可,权限校验逻辑和硬删除完全一致

内容的提问来源于stack exchange,提问作者Hashir Hamza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 00:06:04