安卓认证和会话

3
如何在安卓应用中进行身份验证后保持用户登录状态?我查阅了一些资料,但对于会话方面还不是很熟悉。看起来,在用户向服务器提交凭据并得到认证后,服务器会返回一个会话ID。我猜这个会话ID会被存储在用户的安卓设备上。
那么,我应该使用sharedPreferences、sqlite数据库还是本地存储来保存会话ID呢?我读到说,sharedPreferences相对不太安全,而sqlite数据库或本地存储则只能限制在单个应用程序中使用。
另外,我应该通过HTTP请求向服务器发送/接收此信息,还是可以通过套接字连接完成?最终,我想制作一个将使用套接字的多人游戏,虽然像登录这样的某些功能不一定非要通过套接字完成,不知道游戏开发者通常采用什么标准或常规方法。
1个回答

0
我应该向服务器发出HTTP请求来发送/接收此信息吗?
我认为您不仅想通过HTTP发送身份验证。潜在地,人们可以拦截您的数据包并以纯文本形式读回数据。如果您在服务器上有一个API用于您的Android应用程序进行身份验证,则建议使用HTTPS进行通信。
我应该使用sharedPreferences、sqlite数据库还是本地存储来保存会话ID?
我自己使用“MODE_PRIVATE”中的sharedPreferences来存储ID。您可以创建不同模式的sharedPreferences文件。私有模式意味着它只能被您的应用程序或具有相同用户ID的应用程序访问。所有模式都在此处解释:

http://developer.android.com/reference/android/content/Context.html#getSharedPreferences%28java.lang.String,%20int%29

如果您想在Android设备上存储密码和用户信息,我建议使用数据库。请确保使用“盐和胡椒”来保护您的密码:

http://barkingiguana.com/2009/08/03/securing-passwords-with-salt-pepper-and-rainbows/

“不确定游戏开发者通常是否有标准或惯用的方法来处理这个问题。”
“对于这个问题我无法提供帮助,但我认为如果你进行一些研究,你就能找到答案 ;).”

感谢您的有益回复。HTTPS更合理,因为它是加密的。我想我的问题更多的是,我应该通过套接字或HTTPS发送用户的登录信息并响应会话ID。我认为只要是安全的套接字连接,使用套接字也可以。 - John Doe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接