🌐 多平台用户身份统一方案演示

1. 四层用户标识体系

1. user_uuid (全局ID)

550e8400-e29b-41d4-a716-446655440000

跨平台唯一标识,API对外主键

2. platform_user_id (平台ID)

openid_wx_123
douyin_openid_456

各平台的用户标识

3. union_id (统一ID)

unionid_abc123

平台提供的跨应用ID

4. id (数据库ID)

123456

数据库内部自增主键

2. 支持的平台类型

微信小程序

openid + unionid

抖音小程序

douyin_openid

APP

移动应用

device_id + phone

PC

桌面应用

email + device_id

Web

网页版

social_login

3. 用户账号关联案例

👤 用户张三 (多平台用户)

user_uuid: 550e8400-e29b-41d4-a716-446655440001

所有平台数据统一,游戏进度同步

👤 用户李四 (单平台用户)

user_uuid: 550e8400-e29b-41d4-a716-446655440002

可随时绑定其他平台账号

4. 现有系统 vs 新系统对比

特性 现有系统 新系统
用户标识 仅openid 四层标识体系
支持平台 仅微信小程序 微信、抖音、APP、PC、Web
账号关联 不支持 支持多平台账号绑定
数据同步 不涉及 跨平台数据同步
用户分析 单平台数据 全平台用户画像
扩展性 有限 高度可扩展

5. 渐进式迁移计划

📋 四阶段迁移策略

Phase 1: 添加新字段,保持现有逻辑运行
Phase 2: 新用户使用新体系,老用户保持兼容
Phase 3: 逐步迁移现有用户数据
Phase 4: 完全切换到新体系,废弃老字段

6. 数据迁移SQL示例

-- 第一步:为现有用户生成UUID UPDATE users SET user_uuid = UUID(), platform_type = 'wechat', platform_user_id = openid, registration_source = 'legacy_migration' WHERE user_uuid IS NULL; -- 第二步:创建platform_accounts记录 INSERT INTO platform_accounts ( user_uuid, platform_type, platform_user_id, platform_nickname, platform_avatar, is_primary ) SELECT user_uuid, 'wechat', openid, nickname, avatar_url, TRUE FROM users WHERE openid IS NOT NULL;

7. 统一登录API设计

POST /api/v1/auth/unified-login { "platform_type": "wechat|douyin|app|pc|web", "platform_data": { "platform_user_id": "openid_or_other_id", "nickname": "用户昵称", "avatar_url": "头像URL", "union_id": "unionid(如果有)", "phone": "手机号(如果有)", "email": "邮箱(如果有)" } } Response: { "code": 0, "data": { "user_uuid": "全局用户ID", "token": "JWT令牌", "is_new_user": false, "linked_platforms": ["wechat", "douyin"] } }