4

我正在构建一个 Android 应用程序以在 android 手机上提供网站的功能。

人们需要登录,并且他们使用 cookie 保持登录状态,允许他们在自己的帐户下做事。网站的所有登录/身份验证代码都已完成,我现在正在编写一个 Android 应用程序来做同样的事情。

我的问题是,如果 Android 应用程序向 PHP 服务器发送 HTTP 请求,并且服务器作为回报设置了一些 cookie(以显示用户已登录),那么这些 cookie 是否会在所有未来的 HTTP 请求期间保持在 Android 应用程序上设置到服务器?

或者,我是否需要为 android 制定一个新的身份验证方案,例如在用户登录时将特殊令牌传递给应用程序,以及在所有未来请求对用户进行身份验证时提供此令牌的应用程序?

4

3 回答 3

3

一旦您登录应用程序,您应该将令牌保存在SharedPrefrences中。您可以稍后在每个 Http 请求中使用。即使应用程序重新启动,您也有该令牌。所以 SharedPredPrefrence 更好。

于 2012-10-01T09:16:45.253 回答
3

您应该使用CookieManagerCookieStore来保存 Cookie。

CookieManager 会将每个传入的 HTTP 响应的 cookie 存储到 CookieStore 中,并为每个传出的 HTTP 请求检索 cookie。过期的 HttpCookies 应自行从该存储中删除。

您可以将它与HttpURLConnection类一起使用。

于 2012-10-01T09:20:11.323 回答
1

登录后放入SharedPreferences

SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("userName", "Rock");
editor.putString("token", "token@123");

SharedPreferences中获取

SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
String username = sharedPreferences.getString("userName", "");
String token = sharedPreferences.getString("token", "");
于 2012-10-01T09:30:54.363 回答