之前的项目登录模块存在问题,登录状态和用户名直接存在了SharedPreferences里,进入软件时直接判断用户名是否为空,为空时才进入登录页面,否则直接读取SP中的相关数据,看了AsyncHttpClient的文档后,才发现可以允许读取cookie。
只要在实例化AsyncHttpClient时加上以下代码即可。
httpClient = new AsyncHttpClient();
PersistentCookieStore cookieStore = new PersistentCookieStore(context);
httpClient.setCookieStore(cookieStore);
PersistentCookieStore类是该支持包提供的类,其中有getCookies()方法,该方法返回一个org.apache.http.cookie.Cookie接口。想要查看当前所有Cookie内容,只要使用以下代码。
PersistentCookieStore myCookieStore = new PersistentCookieStore(context);
List<Cookie> cookies = myCookieStore.getCookies();
for (Cookie cookie : cookies) {
Log.d("Cookie",cookie.getName() + " = " + cookie.getValue());
}
当然,cookie内容可以被设置成header用于登录获取用户信息等验证,每次调用这些API接口就再也不用傻逼兮兮的加上username,password等验证了。
这就交给后端同学去做了,Android同学安心的开发你的app吧。再也不用关心验证等问题了。
本文介绍了一种改进登录模块的方法,通过将登录状态存储于Cookie而非SharedPreferences中,并利用AsyncHttpClient读取Cookie,实现更高效的用户验证流程。
312

被折叠的 条评论
为什么被折叠?



