我在服务器上使用基于令牌的身份验证机制。当用户通过Android应用程序登录时,服务器返回需要随每个后续请求一起发送的令牌。我需要将这个值存储在设备上。由于令牌是一个简单的字符串,我以为我会使用SharedPreferences
来保存该值。当应用程序在MyApplication extends Application
内启动时,我向SharedPreferences
查询此令牌并将其作为全局状态保存在MyApplication
内,以便每个活动在向服务器发送请求时都可以访问它。
这种方法可行吗?如果没有,它有什么重大缺点?如果这不是一个坏主意,那么替代方法是什么?
PS。这不是一个主观问题 - 我没有要求the best
方法,我正在验证我的假设。
答案 0 :(得分:4)
这是相当安全的。用户无法访问SharedPreferences
,除非他们已根植设备。如果您非常关注安全性,可以在将令牌存储到SharedPreferences
之前对其进行加密。
答案 1 :(得分:2)
如果您不想使用database
或在文件上写入令牌,则它是一个有效选项。没有我能想到的缺点
答案 2 :(得分:1)
如果设备已植根,则会出现一个故障。如果设备已植根,则用户可以从其设备中看到来自SharedPreferences的令牌。我建议您使用Sugar here将数据存储到数据库/ SQLite,以便更好地处理您的服务器。