fix(推送): 隔离推送设备账号绑定并支持定向联调,新建22222222222测试账号 #208
Reference in New Issue
Block a user
Delete Branch "fix-manufacturePushComfirm"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🤖 review-pr 深审结论
🟡 需关注(置信度 0.8)—— 推送隔离核心正确、契约对应 #375,但引入荣耀/华为推送
targetUserType回归(默认值不安全 + 破坏既有测试)。推送隔离核心(✅ 正确)
/unregister(token 授权) +/unregister/deferred(binding_id 授权)。unregister_push_binding_deferred要求device_id+push_binding_id双匹配才解绑、幂等——binding_id 是 32B 随机 capability token,攻击者无从伪造。push_binding_isolation合并态单 head;merge origin/main(含已合入的 #204/#205) 无冲突。🟡 回归:荣耀/华为
targetUserTypevendor_push.py:荣耀targetUserType从硬编码1→settings.HONOR_PUSH_TARGET_USER_TYPE;华为同样 →HUAWEI_PUSH_TARGET_USER_TYPE。config.py:两者default=0(测试用户)。base 是硬编码1(正式)。=1,正式荣耀/华为推送都以targetUserType=0(测试用户)发送 → 正式用户可能收不到推送(厂商测试推送只投注册的测试设备/限流)。默认值把「安全默认」设成了「测试模式」。test_device_push.py9 passed,#208 令test_honor_auth_and_send_payload失败(assert 0 == 1)、华为同类同理。经 base 对比确认是本 PR 引入(非 pre-existing);测试未跟随更新。建议
HONOR/HUAWEI_PUSH_TARGET_USER_TYPE默认改 1(安全默认=正式),联调环境显式配0;或至少保证生产.env配=1且.env.example示范=1。settings或测试内 monkeypatch 设 1),别让 CI 常红。push_binding_isolation与 #207limit_policy_whitelist同 down_revision(guide_video_ten_circle_v2),谁后合并需 rebasedown_revision,否则 alembic 双 head。风险 🟡(隔离本身可上,但 targetUserType 默认值需先确认/修正)。
— 🤖 review-pr 自动深审 @zuochenyong