微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何以正确的方式将jwt存储在android应用中?

如何解决如何以正确的方式将jwt存储在android应用中?

我有一个Android应用程序,用户需要使用JSON Web令牌(访问/刷新令牌)发送请求。在安全性和易于访问性方面,我需要以正确的方式(或最佳做法)存储它。我听说过SharedPreferences和AccountManager,但是不同来源的意见不同。

解决方法

Shared preferences将是存储令牌的最佳选择。此存储是特定于应用程序的,其他应用程序无法访问此空间。至于加密,您要么要求用户每次都输入解密密码(从而破坏了缓存凭据的目的),要么将密钥保存到文件中,问题仍然存在。我在下面附加了使用sharedPrefs的详细信息-

如何初始化?

// 0 - for private mode`
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref",0); 

Editor editor = pref.edit();

如何在共享首选项中存储数据?

editor.putString("key_name","string value"); // Storing string

OR

editor.putInt("key_name","int value"); //Storing integer

别忘了申请:

editor.apply();

如何从“共享首选项”中检索数据?

pref.getString("key_name",null); // getting String

pref.getInt("key_name",0); // getting Integer

希望这对您有帮助:)

,

我有一个Android代码示例,该示例在存储在Shared Prefs中之前会对令牌进行加密,因为默认情况下这不是安全存储。而且,它避免了向最终用户询问令牌存储他们不了解的问题。

您可以轻松下载并运行我的应用程序,并且会发现在重新启动应用程序时没有登录提示:

应用首次运行时,会使用Android密钥存储区为该应用生成密钥,只有您的应用知道该密钥:

我的解决方案基于Okta Android SDK,因此也是一个不错的选择。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。