Android应用如何实现家长与儿童登录账号关联及数据同步
Android端家长控制应用双账号绑定+数据同步实现方案
账号体系底层设计
不要拆分两套独立的账号库,所有账号共用一套基础账号表,通过角色字段做身份区分:
- 基础账号表核心字段:全局唯一
uid、登录凭证(密码哈希/第三方授权token/绑定手机号)、首次登录设备指纹、账号创建时间,role字段用枚举值标记身份:1=家长账号、2=儿童账号 - 单独新建绑定关系表存储两类账号的关联,表结构参考:
CREATE TABLE account_binding ( id BIGINT PRIMARY KEY AUTO_INCREMENT, parent_uid VARCHAR(64) NOT NULL COMMENT '家长账号UID', child_uid VARCHAR(64) NOT NULL COMMENT '儿童账号UID', bind_time BIGINT NOT NULL COMMENT '绑定时间戳', bind_status TINYINT NOT NULL DEFAULT 1 COMMENT '1=绑定生效 0=已解绑', permission_mask INT NOT NULL DEFAULT 7 COMMENT '位掩码存储家长权限:1=查看使用时长 2=查看实时位置 4=接收违规告警', UNIQUE KEY `uniq_parent_child` (`parent_uid`,`child_uid`), KEY `idx_child_uid` (`child_uid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
规则前置:儿童账号不开放自主注册入口,所有儿童账号必须由已登录的家长账号发起创建/绑定流程,从入口层避免无归属的儿童账号产生。绑定关系支持多对一:多个家长账号可以绑定同一个儿童账号(比如父母双方同时管控孩子设备),但一个儿童账号的管控权限不会无限制开放。
两类账号绑定流程实现
覆盖两种常见绑定场景,全程做安全校验避免恶意绑定:
场景1:家长端直接创建儿童账号
- 家长完成账号登录后,进入「儿童账号管理」入口,选择「新建儿童账号」
- 填写儿童昵称、年龄、初始管控规则后,后端直接生成
role=2的儿童账号,自动写入绑定关系表,同时生成单次有效的6位短码/配对二维码 - 儿童设备打开应用,选择「儿童登录」,扫码/输入短码即可自动完成儿童账号登录,无需额外注册、输入密码
场景2:已有儿童账号跨设备配对
- 儿童端登录已有儿童账号后,进入「绑定家长」页面,生成10分钟时效、单次有效的配对码/二维码,码内携带儿童账号
uid、临时校验token,不携带任何敏感信息 - 家长端登录后选择「绑定已有儿童账号」,扫码/输入配对码发起绑定请求,后端校验临时token有效性后,给儿童端弹出绑定确认弹窗
- 儿童点击确认绑定后,后端更新绑定关系表状态为生效,双端同步弹出绑定成功提示
安全校验点:绑定关系生效后,立刻给家长账号绑定的手机号、儿童端同时发绑定成功通知;儿童端保留一键解绑入口,解绑操作触发后实时切断所有数据同步链路,同时给所有绑定的家长账号推送解绑通知。
儿童数据同步至家长端实现
全程走后端中转链路,禁止客户端直连传输,避免数据被篡改、伪造:
- 儿童端本地做管控数据采集:包括应用使用时长、实时位置、网页浏览记录、违规操作(比如尝试打开禁止应用、修改系统权限)等,采集到的数据本地用AES加密存储,按策略上报:常规数据每5分钟批量上报一次,违规触发类事件实时上报
- 所有上报请求必须携带儿童账号登录token、当前设备指纹,后端先校验设备指纹和儿童账号首次绑定的指纹是否一致,再校验登录态有效性,校验通过才会存储上报数据
- 数据入库后,后端根据绑定关系表查询该儿童账号绑定的所有处于生效状态的家长账号
uid,将新数据标记为未读,通过Android厂商推送+应用长连接通道给对应家长端发新消息提醒 - 家长端打开应用时,拉取自己绑定的所有儿童账号的全量/增量数据,本地缓存后展示在管控面板;如果多个家长绑定同一个儿童,任意一方修改管控规则,后端会同步推送给其他家长端、儿童端生效,保证规则一致性
- 所有拉取儿童数据的请求,后端必须先校验请求方
uid和目标儿童uid是否存在有效绑定关系,无关系直接返回403状态码,彻底堵上越权拉取数据的漏洞
Android端双身份适配要点
- 应用启动时先读取
EncryptedSharedPreferences中加密存储的登录态,根据账号role字段直接跳转对应角色的首页:家长端进入管控面板,儿童端进入受限模式桌面,两套路由表做隔离,禁止儿童端通过深链、路由跳转直接访问家长端管控页面 - 儿童端默认激活设备管理员权限、应用保活权限,监听应用卸载、权限修改操作,一旦检测到孩子尝试关闭管控权限,立刻给家长端发告警
- 本地登录态禁止明文存储,所有角色相关的标记字段都做加密校验,防止设备root后被篡改身份绕过管控
内容的提问来源于stack exchange,提问作者Krishna Agrawal
相关产品推荐
相关产品推荐

