首页 > 解决方案 > 在设备上存储 JWT 以保持用户登录

问题描述

我正在开发一个安卓银行应用程序,并希望用户即使在应用程序关闭后也能保持登录状态。我想让它尽可能安全的想法是在 JWT 中存储一个唯一的设备 id,然后从令牌中提取 id 并将其与应用程序启动时从设备获取的设备 id 进行比较。

我会将令牌存储在 中SharedPreferences,但是,我刚刚读到这些设备 id 并不总是唯一的,因为人们正在使用他们的手机。最好的解决方案是什么?如何确定我在启动时验证的令牌已提供给该用户/设备?我不一定需要使用设备 ID,因此欢迎使用任何其他安全选项。

标签: javaandroidsecurityjwt

解决方案


我认为在像银行应用程序这样敏感的东西中拥有一个持久的登录会话不是一个好主意,但如果你坚持:

使用SafetyNet Attestation API检查您运行应用程序的设备是否已植根,如果是,则阻止用户进行交互。一旦你这样做了,只需使用常规SharedPreferences的 withMode.PRIVATE并且没有人应该能够在你的应用程序之外读取这些数据。


推荐阅读