ArkWeb 手记 06|登录态怎么同步
HarmonyOS 7 · ArkWeb 混合应用开发手记 06混合应用里最尴尬的场景之一用户明明已经在 App 登录了打开 H5又让登录一次。或者原生退出账号了Web 页面还保持着旧用户。这不是一个 Token 塞进 URL 就能解决的问题。1. 先决定谁是登录态的事实来源通常原生应用应该掌握账号主状态H5消费它而不是两边各维护一套互不相认的登录态。账号中心 / 原生 ↓ Bridge / Cookie 同步 ↓ H5【配图 01原生登录态、Cookie、H5 Session 三层同步图】2. 不要把 Token 拼 URLhttps://example.com/page?tokenxxxx这种方式会进入历史、日志、统计甚至截图风险很高。3. Bridge 获取短期凭据H5 可以请求constauthawaitbridge.call(getAuthInfo)原生返回必要的短期信息而不是把所有账号数据都给 Web。4. Cookie 场景要统一域如果服务端本来就依赖 Cookie会更适合通过 ArkWeb Cookie能力和服务端会话体系处理。域、Secure、SameSite、过期时间都要和后端一起定。5. 登录成功以后通知 H5sendMessageToH5({type:authChanged,data:{loggedIn:true}})H5 收到后重新拉用户数据而不是简单粗暴整页刷新。6. 退出登录要清理两边退出时至少考虑原生凭据、Web Cookie/Session、页面内存里的用户数据、Bridge 缓存。7. 401 不要无限重试H5 收到401可以向原生询问当前认证状态如果凭据失效应进入统一刷新/重新登录流程。无限刷新接口只会制造请求风暴。8. 多 Web 页面要广播状态如果应用同时存在多个 Web容器登录态变化不能只通知当前页面。可以由容器层统一订阅账号变化再转发给各页面。9. 日志永远别打印完整 Token最多打印脱敏 ID、状态和过期时间[Auth] changed loggedIntrue不要tokeneyJhbGciOi...10. 小结登录态同步的重点不是怎么把字符串传过去而是谁负责、何时更新、退出怎么清、失败怎么恢复。下一篇开始处理弱网缓存、离线页和本地资源怎么组合。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →