生物识别重新登录实现疑问:加密内容与登出后登录逻辑
生物识别登录功能核心问题解答
问题1:步骤4应加密保存Token还是用户名/密码?
优先选择加密保存refresh_token,绝对不建议存储用户名/密码,具体原因和解决方案如下:
- 用户名/密码是账号最高敏感信息,即便加密存储,一旦被破解就会直接导致账号被盗,风险不可控,完全不适合持久化存储。
- 针对refresh_token的过期问题,可通过两种方式规避:
- 生物识别验证通过后,立即用保存的refresh_token调用后端刷新接口,换取新的access_token和refresh_token,同时更新本地加密存储的refresh_token,保证存储的始终是有效凭证。
- 后端设置合理的refresh_token有效期(如7-30天),当refresh_token过期时,引导用户重新输入用户名/密码登录,完成后再重新开启生物识别认证流程。
- 存储必须使用系统级安全容器:比如iOS的Keychain、Android的EncryptedSharedPreferences,这类存储自带硬件级加密,安全性远高于自定义加密实现。
问题2:登出后如何通过生物识别重新登录?是否需要禁用生物识别?
步骤6的生物识别登录完全依赖步骤4保存的加密数据,不需要在登出时禁用生物识别,只需调整登出和登录的逻辑:
- 用户主动登出时,仅清除内存中的access_token,保留加密存储的refresh_token(除非用户主动关闭生物识别功能)。
- 生物识别重新登录流程:
- 验证用户生物识别信息,通过后取出加密存储的refresh_token。
- 调用后端token刷新接口,用refresh_token换取新的access_token和refresh_token。
- 刷新成功则直接进入应用;若refresh_token已过期,提示用户重新输入用户名/密码登录,完成后再重新开启生物识别认证。
- 若用户执行彻底注销操作(而非临时登出),则同时清除加密存储的refresh_token,并关闭生物识别开关。
内容的提问来源于stack exchange,提问作者NamNH
相关产品推荐
相关产品推荐

