使用“SharedPreferences”存储身份验证令牌

时间:2015-05-27 14:45:15

标签: android

我在服务器上使用基于令牌的身份验证机制。当用户通过Android应用程序登录时,服务器返回需要随每个后续请求一起发送的令牌。我需要将这个值存储在设备上。由于令牌是一个简单的字符串,我以为我会使用SharedPreferences来保存该值。当应用程序在MyApplication extends Application内启动时,我向SharedPreferences查询此令牌并将其作为全局状态保存在MyApplication内,以便每个活动在向服务器发送请求时都可以访问它。

这种方法可行吗?如果没有,它有什么重大缺点?如果这不是一个坏主意,那么替代方法是什么?

PS。这不是一个主观问题 - 我没有要求the best方法,我正在验证我的假设。

3 个答案:

答案 0 :(得分:4)

这是相当安全的。用户无法访问SharedPreferences,除非他们已根植设备。如果您非常关注安全性,可以在将令牌存储到SharedPreferences之前对其进行加密。

答案 1 :(得分:2)

如果您不想使用database或在文件上写入令牌,则它是一个有效选项。没有我能想到的缺点

答案 2 :(得分:1)

如果设备已植根,则会出现一个故障。如果设备已植根,则用户可以从其设备中看到来自SharedPreferences的令牌。我建议您使用Sugar here将数据存储到数据库/ SQLite,以便更好地处理您的服务器。