3

如何在 Android 应用程序中进行身份验证后让用户保持登录状态?我做了一些阅读,坦率地说,我对会话有点缺乏经验,但看起来在用户将他们的凭据提交给服务器并通过身份验证之后,服务器会发回会话 ID。我认为这个会话 ID 存储在用户的 android 设备上的某个地方。

我应该使用 sharedPreferences、sqlite 数据库还是本地存储来保存会话 ID?我读到共享首选项有点不安全,而 sqlite 数据库或本地存储将仅限于单个应用程序。

另外,我应该向服务器发出 HTTP 请求以发送/接收此信息,还是可以通过套接字连接完成。最终,我想制作一个使用套接字的多人游戏,尽管我认为某些功能(例如登录)不一定必须通过套接字,但不确定游戏开发人员通常是否有标准或通常的方式来执行此操作。

4

1 回答 1

0

我应该向服务器发出 HTTP 请求以发送/接收此信息吗

我不认为您只想通过 HTTP 发送您的身份验证。人们可能会拦截您的包裹并以纯文本形式读回数据。如果您的 android 应用程序在服务器上有一个 API 进行身份验证,我建议您使用 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 设备上存储密码和用户,我建议您使用数据库。确保使用“salt and pepper”保护您的密码:

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

不确定游戏开发人员通常是否有标准或通常的方式来执行此操作

无法帮助您解决这个问题,但我认为如果您进行一些研究,您将能够弄清楚;)。

于 2013-04-11T15:27:07.787 回答