我正在构建一个Android应用程序来提供Android手机网站的功能。
人们需要登录,他们仍然使用cookie登录,允许他们在自己的帐户下进行操作。已经为网站完成了登录/身份验证的所有代码,我现在正在编写一个Android应用程序来执行相同的操作。
我的问题是,如果Android应用程序向PHP服务器发送HTTP请求,并且服务器返回设置了一些cookie(以显示用户已登录),那么这些cookie是否会在Android应用程序中保持设置状态未来的HTTP请求到服务器?
或者,我是否需要为Android制定新的身份验证方案,例如在用户登录时将特殊令牌传递给应用程序,以及在将来验证用户的所有请求期间提供此令牌的应用程序?
答案 0 :(得分:3)
一旦你在App中登录,你应该在SharedPrefrences中保存令牌。你可以在以后的每个Http请求中使用。即使应用程序是重启你也有那个令牌。所以SharedPredPrefrence对此更好。
答案 1 :(得分:3)
您应该使用CookieManager和CookieStore来保存Cookie。
CookieManager会将每个传入的HTTP响应的cookie存储到CookieStore中,并为每个传出的HTTP请求检索cookie。应该从这个存储中删除过期的HttpCookies。
您可以将其与HttpURLConnection类一起使用。
答案 2 :(得分: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", "");