Java 在设备上存储JWT以保持用户登录

Java 在设备上存储JWT以保持用户登录,java,android,security,jwt,Java,Android,Security,Jwt,我正在开发一款android银行应用程序,希望用户即使在应用程序关闭后也能保持登录状态。我的想法是尽可能安全地将唯一的设备id存储在JWT中,然后从令牌中提取id,并将其与启动应用程序时从设备获取的设备id进行比较 我会将令牌存储在SharedReferences中,但是,我刚读到这些设备id并不总是唯一的,因为它们是手机的用户。最好的解决方案是什么?如何确保在启动时验证的令牌已提供给该用户/设备?我不一定需要使用设备id,因此欢迎使用任何其他安全选项。我认为在像银行应用程序这样敏感的应用程序中

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


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

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


用于检查运行应用程序的设备是否为根设备,如果为根设备,则阻止用户进行交互。一旦你这样做了,只需使用Mode.PRIVATE的常规SharedReferences,任何人都不能在你的应用程序之外读取这些数据。

是的,我考虑了一会儿,同意你的第一点。我想出了一个主意,要有一个额外的密码,它总是需要在应用程序启动时输入。我认为这解决了安全问题。这也意味着我可以让用户登录。因为从SharedReferences获取JWT仍然意味着您需要一个密码。我想听听你对此的想法。