---
URL: "/zh-CN/blog/2025-10/privacy-design.html"
LLMS_URL: "/zh-CN/blog/2025-10/privacy-design.md"
lastUpdated: true
commentabled: true
recommended: true
title: "基本用户隐私设置功能设计"
description: "从需求到落地的全流程方案"
date:

pageClass: "blog-page-class"
cover: "/covers/platform.svg"
---

---
lastUpdated: true
commentabled: true
recommended: true
title: 基本用户隐私设置功能设计
description: 从需求到落地的全流程方案
date: 2025-10-23 10:45:00 
pageClass: blog-page-class
cover: /covers/platform.svg
---

用户隐私设置是产品尊重用户权益、合规运营的核心功能，核心目标是让用户 “自主控制个人信息的使用与可见范围”，避免隐私数据被滥用。一套基本的隐私设置功能无需过度复杂，但需覆盖用户最关心的场景（如个人信息可见性、数据授权、通知控制），同时兼顾操作简单性与功能安全性。本文将从需求分析出发，拆解功能模块、交互设计、技术实现及合规要点，提供可直接复用的设计方案。

## 一、先明确：基本隐私设置的核心目标与用户需求 ##

在设计前，需先锚定两个核心目标： “*用户能看懂、能控制*” （易用性）与 “*数据不泄露、不滥用*”（安全性）。基于此，梳理用户最核心的隐私需求（避免冗余功能）：

### 用户核心需求（基本场景） ###

|  需求类别   |      具体诉求  |
| :-----------: | :-----------: |
| 个人信息控制 | 决定 “昵称、头像、手机号、收货地址” 等信息对谁可见（如仅自己、仅好友、公开） |
| 数据授权管理 | 查看 / 取消 “第三方应用（如登录用的微信 / QQ）、平台内部功能（如个性化推荐）” 对个人数据的使用权限 |
| 隐私通知设置 | 控制是否接收 “隐私政策更新、数据使用通知、第三方授权提醒” 等隐私相关消息 |
| 数据痕迹管理 | 删除 “浏览历史、搜索记录、操作日志” 等个人行为数据，避免痕迹留存 |

### 设计原则（基本功能需遵守） ###

- **最小必要**：仅提供用户最关心的设置项，不堆砌功能（如暂不支持 “隐私等级自定义” 等复杂功能）；

- **清晰易懂**：避免专业术语（如不用 “数据脱敏范围”，改用 “个人信息可见范围”），每个设置项配简短说明（如 “开启后，你的好友可查看你的收货地址”）；

- **即时生效**：用户修改设置后，无需重启 APP / 刷新页面，相关权限立即更新（如修改手机号可见性后，其他用户立即无法查看）；

- **安全兜底**：默认设置需偏向隐私保护（如新用户注册时，个人信息默认 “仅自己可见”，第三方授权默认关闭）。

## 二、核心功能模块设计：4 大基础模块覆盖用户需求 ##

基本隐私设置功能可拆分为 4 个核心模块，每个模块聚焦一类用户需求，模块内设置项需 “少而精”，避免用户选择困难。

### 模块 1：个人信息可见范围设置（用户最关心） ###

核心是让用户控制 “不同类型的个人信息，对不同对象可见”，需区分 “信息类型” 与 “可见对象”，避免一刀切（如头像公开、手机号仅自己可见）。

#### 功能设计详情 ####

|  信息类型   |      可见对象选项  | 默认设置   |      说明文案（帮助用户理解）  |
| :-----------: | :-----------: | :-----------: | :-----------: |
| 基础资料（昵称、头像、性别） | ① 公开（所有用户可见）② 仅好友可见 ③ 仅自己可见 | 仅自己可见   |      “选择‘公开’后，非好友用户也能在搜索结果中看到你的昵称和头像”  |
| 联系信息（手机号、邮箱） | ① 仅自己可见 ② 仅实名认证好友可见（若产品有实名认证功能） | 仅自己可见   |    “手机号仅用于登录和找回密码，建议保持‘仅自己可见’”  |
| 地址信息（收货地址、常驻地） | ① 仅自己可见 ② 仅下单时可见（仅平台和商家在你下单时临时获取） | 仅自己可见   |      “选择‘仅下单时可见’，可避免地址长期暴露”  |
| 动态 / 作品（如发布的评论、分享） | ① 公开 ② 仅好友可见 ③ 仅自己可见 ④ 不展示（隐藏所有动态） | 仅自己可见   |      “隐藏动态后，你历史发布的评论和分享将不再对外展示”  |

#### 交互设计要点 ####

- **分组展示**：将信息类型按 “基础资料”“联系信息”“地址信息” 分组，每组用卡片分隔，视觉清晰；

- **即时预览**：用户选择可见选项后，右侧显示 “预览效果”（如选择 “仅好友可见”，预览区提示 “你的好友可看到该信息，非好友看不到”）；

- **风险提示**：若用户将 “手机号” 设为 “公开”，弹出确认弹窗：“确定将手机号设为公开吗？可能面临骚扰电话风险，建议仅自己可见”，避免误操作。

### 模块 2：数据授权管理（合规核心） ###

核心是让用户 “知道谁在用自己的数据、能随时取消授权”，需覆盖 “第三方应用授权” 和 “平台内部功能授权” 两类场景，符合《个人信息保护法》中 “用户有权撤回授权” 的要求。

#### 功能设计详情 ####

**第三方应用授权管理**

- **展示内容**：列出用户已授权的所有第三方应用（如 “微信登录授权”“QQ 快捷登录”“某外卖 APP 获取地址授权”），每个应用显示 “授权时间”“授权范围”（如 “获取你的昵称、头像”“获取你的收货地址”）；

- **操作功能**：每个应用右侧提供 “取消授权” 按钮，点击后弹出确认弹窗：“取消授权后，该应用将无法再获取你的个人数据，是否继续？”，确认后立即撤销授权；

- **默认状态**：新用户无授权记录，首次授权第三方应用时，需单独弹窗提示授权范围（如 “微信登录将获取你的昵称和头像，用于账号注册”），用户确认后才授权。

**平台内部功能授权**

- **设置项**：针对平台内依赖用户数据的功能，提供开关控制：

|  功能名称   |      授权开关  |  默认状态   |      说明文案  |
| :-----------: | :-----------: | :-----------: | :-----------: |
| 个性化推荐 | ① 开启（平台根据你的浏览、购买记录推荐内容）② 关闭（仅展示热门内容） | 关闭 | “关闭后，推荐内容可能与你的兴趣关联度降低” |
| 数据用于产品优化 | ① 开启（匿名上传你的使用数据，用于修复 bug、优化功能）② 关闭 | 关闭 | “数据将匿名处理，不会包含你的个人标识信息” |
| 第三方 SDK 授权 | 列出平台集成的第三方 SDK（如统计 SDK、推送 SDK），提供 “查看 SDK 隐私政策” 和 “关闭非必要 SDK” 按钮 | 仅保留必要 SDK（如推送 SDK 默认开启，统计 SDK 默认关闭） | “关闭非必要 SDK 后，可能影响部分功能（如统计数据无法收集，但不影响核心使用）” |

#### 交互设计要点 ####

- **授权范围清晰**：不笼统写 “授权该应用获取个人数据”，需明确列出具体数据项（如 “获取昵称、头像，不获取手机号”）；

- **隐私政策链接**：每个授权项下方提供 “查看隐私政策” 链接，跳转至该应用 / SDK 的隐私政策页面，确保用户知情权。

### 模块 3：隐私通知设置（减少打扰） ###

核心是让用户控制 “是否接收隐私相关的通知”，避免频繁推送打扰用户，同时确保 “重要隐私通知（如隐私政策更新）不被遗漏”。

#### 功能设计详情 ####

|  通知类型   |      开关选项  | 默认状态   |      说明文案  |
| :-----------: | :-----------: | :-----------: | :-----------: |
| 隐私政策更新通知 | ① 开启（通过 APP 内消息 + 短信通知）② 仅 APP 内消息通知 ③ 关闭 | 仅 APP 内消息通知 | “隐私政策更新涉及你的权益，建议保持通知开启” |
| 授权变动通知 | ① 开启（当你的数据授权被修改时通知）② 关闭 | 开启 | “如第三方应用获取 / 取消你的授权，将及时通知你” |
| 隐私风险提醒 | ① 开启（如检测到你的信息可能泄露时提醒）② 关闭 | 开启 | “隐私风险提醒可帮助你及时保护个人信息安全” |
| 营销类隐私通知（如 “个性化广告推荐开关已更新”） | ① 开启 ② 关闭 | 关闭 | “此类通知不影响核心功能，可根据需求关闭” |

#### 交互设计要点 ####

- **重要通知强提醒**：“隐私政策更新通知” 和 “隐私风险提醒” 默认不可完全关闭（至少保留 APP 内消息通知），符合合规要求；

- **通知方式可选**：支持 “APP 内消息”“短信”“推送”（若有 APP 推送功能）多种方式，用户可勾选需要的通知方式（如仅勾选 “APP 内消息”）。

### 模块 4：数据痕迹管理（用户安全感） ###

核心是让用户 “能删除自己留下的行为数据”，减少隐私痕迹留存，覆盖用户高频产生的行为数据类型，操作简单易找到。

#### 功能设计详情 ####

|  数据类型   |      操作功能  |     说明文案  |
| :-----------: | :-----------: | :-----------: |
| 浏览历史 | ① 一键删除全部 ② 按时间删除（近 7 天、近 30 天、自定义时间） ③ 单独删除某条记录 | “删除后不可恢复，建议定期清理” |
| 搜索记录 | ① 一键删除全部 ② 按时间删除 ③ 单独删除某条记录 ④ 实时清除（开启后，搜索记录实时删除，不保存） | “开启实时清除，可避免搜索记录留存” |
| 操作日志（如登录记录、设置修改记录） | ① 查看详情 ② 一键删除近 30 天日志（更早日志系统自动清理，需说明 “系统仅保留近 90 天操作日志，到期自动删除”） | “操作日志用于安全验证，删除不影响账号安全” |

#### 交互设计要点 ####

- **删除反馈**：点击 “删除” 后，显示 “删除中...” 进度提示，删除完成后弹出 “已成功删除” 提示，增强用户确认感；

- **自动清理说明**：在数据类型下方标注 “系统默认保留近 90 天数据，到期自动删除”，让用户知晓无需频繁手动清理，降低操作负担。

## 三、技术实现要点：确保功能安全、稳定生效 ##

基本隐私设置的技术实现需重点关注 “数据存储安全”“权限即时生效”“操作日志可追溯” 三个核心，避免出现 “设置修改后不生效”“数据泄露” 等问题。

### 数据存储设计（MySQL 表结构示例） ###

需设计 “用户隐私设置表” 存储用户的设置参数，结构需兼容后续功能扩展（如新增设置项），同时关联用户 ID 确保唯一性。

```sql
-- 用户隐私设置主表（存储基础设置项）
CREATE TABLE user_privacy_setting (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    user_id BIGINT NOT NULL COMMENT '用户ID（关联用户表）',
    profile_visibility JSON NOT NULL COMMENT '个人信息可见范围设置（如{"nickname":"self","phone":"self","address":"order_only"}）',
    data_authorization JSON NOT NULL COMMENT '数据授权设置（如{"third_app":[{"app_id":"wechat","auth_time":"2024-10-01","auth_scope":["nickname","avatar"]}],"inner_func":{"personalized_recommend":false,"data_optimize":false}}）',
    notification_setting JSON NOT NULL COMMENT '隐私通知设置（如{"policy_update":"app_only","auth_change":true,"risk_alert":true}）',
    data_trace_setting JSON NOT NULL COMMENT '数据痕迹设置（如{"search_real_time_clear":false}）',
    last_update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    UNIQUE KEY uk_user_id (user_id) -- 一个用户仅一条设置记录
) ENGINE=InnoDB COMMENT '用户隐私设置主表';
-- 用户隐私操作日志表（追溯用户修改记录，用于安全审计）
CREATE TABLE user_privacy_operation_log (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    user_id BIGINT NOT NULL COMMENT '用户ID',
    operation_type VARCHAR(50) NOT NULL COMMENT '操作类型（如"update_profile_visibility"：修改个人信息可见性，"cancel_third_auth"：取消第三方授权）',
    old_value JSON COMMENT '修改前的值',
    new_value JSON COMMENT '修改后的值',
    operation_ip VARCHAR(50) COMMENT '操作IP地址',
    operation_device VARCHAR(100) COMMENT '操作设备（如"iPhone 15, iOS 17.0"）',
    operation_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
    INDEX idx_user_id (user_id),
    INDEX idx_operation_time (operation_time)
) ENGINE=InnoDB COMMENT '用户隐私操作日志表';
```

### 核心 API 设计（前后端交互） ###

设计简洁的 API 接口，支持 “获取隐私设置”“修改隐私设置”“取消第三方授权” 等核心操作，需做参数校验和权限控制（仅用户本人可修改自己的设置）。

#### 获取用户隐私设置（GET） ####

- 接口地址：/api/v1/user/privacy/setting

- 请求参数：user_id（从登录态中获取，无需前端传参）

- 返回示例：

```json
{
  "code": 200,
  "msg": "success",
  "data": {
    "profile_visibility": {
      "nickname": "self", // self=仅自己可见，friend=仅好友可见，public=公开，order_only=仅下单时可见
      "phone": "self",
      "address": "self",
      "dynamic": "self"
    },
    "data_authorization": {
      "third_app": [
        {
          "app_id": "wechat",
          "app_name": "微信",
          "auth_time": "2024-10-01 10:30:00",
          "auth_scope": ["nickname", "avatar"]
        }
      ],
      "inner_func": {
        "personalized_recommend": false,
        "data_optimize": false
      }
    },
    "notification_setting": {
      "policy_update": "app_only", // app_only=仅APP内消息，all=APP+短信，close=关闭
      "auth_change": true,
      "risk_alert": true
    },
    "data_trace_setting": {
      "search_real_time_clear": false
    }
  }
}
```

#### 修改个人信息可见范围（POST） ####

- 接口地址：/api/v1/user/privacy/profile/visibility

- 请求参数：

```json
{
  "user_id": 123456, // 从登录态获取
  "profile_type": "phone", // 信息类型：nickname/phone/address/dynamic
  "visibility": "self" // 可见选项：self/friend/public/order_only
}
```

- 返回示例：

```json
{
  "code": 200,
  "msg": "个人信息可见范围修改成功",
  "data": {
    "profile_type": "phone",
    "new_visibility": "self",
    "effective_time": "2024-10-23 15:30:22" // 即时生效时间
  }
}
```

### 权限生效机制（确保即时性） ###

- 前端生效：用户修改设置后，前端立即更新本地缓存（如 Vue 的 Vuex、React 的 Redux），无需刷新页面即可看到新的设置效果（如隐藏手机号）；

- 后端生效：后端修改数据库后，同步更新 Redis 缓存（若有），后续涉及隐私权限的接口（如 “获取用户信息”“展示动态”）需先查询隐私设置，再返回对应数据（如用户设置手机号仅自己可见，其他用户调用 “获取用户信息” 接口时，手机号字段返回 “****”）；

- 示例逻辑：后端 “获取用户信息” 接口的权限判断：

```ts
// 伪代码：根据隐私设置返回用户信息
public UserInfoDTO getUserInfo(Long currentUserId, Long targetUserId) {
    // 1. 查询目标用户的隐私设置
    UserPrivacySetting setting = privacySettingMapper.getByUserId(targetUserId);
    JSONObject profileVisibility = JSON.parseObject(setting.getProfileVisibility());
    
    // 2. 查询目标用户的完整信息
    User targetUser = userMapper.getById(targetUserId);
    UserInfoDTO dto = new UserInfoDTO();
    dto.setUserId(targetUser.getId());
    
    // 3. 根据隐私设置决定是否返回字段
    String nicknameVisibility = profileVisibility.getString("nickname");
    if ("public".equals(nicknameVisibility) || 
        ("friend".equals(nicknameVisibility) && isFriend(currentUserId, targetUserId)) || 
        currentUserId.equals(targetUserId)) {
        dto.setNickname(targetUser.getNickname());
    } else {
        dto.setNickname("***"); // 隐藏昵称
    }
    
    // 手机号仅自己可见，其他情况隐藏
    if (currentUserId.equals(targetUserId)) {
        dto.setPhone(targetUser.getPhone());
    } else {
        dto.setPhone("****");
    }
    
    return dto;
}
```

## 四、合规与安全要点：避免法律风险 ##

基本隐私设置功能需符合《个人信息保护法》《网络安全法》等法规要求，同时通过技术手段防止隐私设置被篡改或滥用。

### 合规要点 ###

- 隐私政策关联：在隐私设置页面顶部添加 “隐私政策” 链接，明确说明 “你的隐私设置将影响个人信息的使用范围，详情见隐私政策”；

- 未成年人特殊处理：若产品有未成年人用户，未成年人账号的隐私设置默认 “最高安全级别”（如所有信息仅自己可见，禁止第三方授权），且需监护人验证后才能修改；

- 知情权保障：每个设置项的 “说明文案” 需真实准确，不误导用户（如不能写 “关闭个性化推荐不影响使用”，若实际影响推荐内容，需如实说明）。

### 安全要点 ###

- 操作鉴权：所有修改隐私设置的接口需验证用户登录态（如 JWT 令牌），确保仅用户本人可修改，防止越权操作；

- 日志审计：用户的每一次隐私设置修改（如修改可见范围、取消授权）都记录到 “用户隐私操作日志表”，包含 “操作 IP、设备、时间”，便于后续安全审计和问题排查；

- 数据加密：用户隐私设置数据在数据库中存储时，敏感字段（如第三方授权信息）需加密（如 AES 加密），避免数据库泄露导致隐私设置被篡改。

## 五、总结：基本隐私设置的 “简而全” ##

基本用户隐私设置功能的核心是 “覆盖核心需求、操作简单、安全合规”，无需追求复杂功能，重点做好以下三点：

- 用户能控制：让用户清晰知道 “自己的信息谁能看、谁在用，能随时改、随时删”；

- 功能能生效：修改设置后即时生效，不出现 “设置了仅自己可见，别人仍能看到” 的问题；

- 合规无风险：符合法律法规要求，不隐瞒数据使用范围，保障用户知情权和撤回权。

通过本文的 4 大模块设计、技术实现方案，可快速落地一套基本的用户隐私设置功能，既满足用户隐私保护需求，又为产品合规运营提供支撑。后续可根据用户反馈，逐步扩展复杂功能（如隐私等级自定义、批量设置）。
