2015-05-27 93 views
5

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

这种方法是否可行?如果不是,它有什么关键的缺点?如果这是一个坏主意,那么另一种方法是什么?

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

+1

你有没有考虑过使用Android AccountManager?用setAuthToken和getAuthToken? – ataulm

+0

我没有,谢谢你的提示。乍看之下,通过'SharedPreferences'来保存令牌似乎比实现更困难。但我可能会考虑未来 –

+0

是的,这绝对是一个头痛的问题。只是“适当”的方法。 – ataulm

回答

4

这是相当安全的。用户无法访问SharedPreferences,除非他们已经对其设备进行了root化。如果您担心安全性太高,可以在将令牌存储在SharedPreferences之前对其进行加密。

2

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

1

如果设备生根,它有一个故障。如果设备是根源的,用户可以从其设备的SharedPreferences中看到该令牌。我建议你使用Sugar here将数据存储到数据库/ SQLite中,以便更好地处理服务器。

相关问题