在Android中存储用户令牌

时间:2018-02-20 00:48:03

标签: java android security jwt token

美好的一天,我正在构建Android应用程序的登录系统(它连接到服务器并检索Web令牌),我对此事有多个问题:

  • 在Android中本地存储此类令牌的首选方法是什么?
  • 是否有一个库允许我对其进行加密并将其安全地存储在SharedPrefs上,而无需单独存储密钥和Salt以进行加密?
  • 将令牌从LoginActivity发送到Intent Extra中的AnotherActivity是否安全?

另外一个问题是,如果将LoginActivity的电子邮件/密码组合发送到LoginViewModel,最后通过将它们作为参数传递给这些类的方法,可以安全地发送到DataSource(EndpointInterface等)。

提前致谢!

3 个答案:

答案 0 :(得分:1)

SharedPreferences最适合在本地存储数据。当您的应用程序存在于系统中时,数据将显示,您可以轻松访问整个应用程序。

SharedPreferences mPreferences = context.getSharedPreferences(PREF_NAME,PRIVATE_MODE);         mSharedEditor = mPreferences.edit(); 用于保存令牌

mSharedEditor.putString("FCM_TOKEN",fcmToken);
    mSharedEditor.commit();

**获取令牌**

mPreferences.getString("FCM_TOKEN",null)

答案 1 :(得分:0)

  1. 共享首选项非常安全,只能由您的应用或root用户访问。
  2. 不确定库,但你可以使用一些简单的ndk方法来加密/解密数据。它会给你一些额外的安全点
  3. 如果您使用显式意图
  4. ,则安全

    P.S。如果您的应用是银行客户,那么您不应该接受此答案

答案 2 :(得分:0)

在这种情况下使用客户经理。

https://developer.android.com/reference/android/accounts/AccountManager.html

您甚至可以跨应用共享您的客户经理,只要他们使用相同的密钥库证书进行签名。