最近在做一个项目,是html和android的混合开发项目。
在android端写了一个本地的登录功能,登录成功之后,打开嵌套的html界面,还提示登录(网页登录)。这显然是不友好的。
如何把本地登录的数据和打开的网页同步呢?
这个问题也是“折磨”了我好长时间。因为html界面是别人写的,后台用的是c#,学java的我很头痛啊。
后来在网上查找了很多资料。
这里你需要补习一下cookie和session的知识:
常见的cookie存储时把登录的信息存储在客户端,像用户名密码等(一般为了安全考虑密码用户名是加密过的)。但是即使加密过也不太安全。现在的解密技术这么nb.
为了安全起见,用户名和密码不能存储在客户端。session是存储在服务器端的,比较安全。但是sessionid的保存常用的方式是借助cookie传递到客户端保存的。当然也有其他保存方式详见。
这里的项目web端是使用的session保存的并且sessionid也是借助cookie传递到了客户端,
当我们请求服务器的时候,会把这个sessionID一起发给服务器,服务器会到内存中搜索对应的sessionID,如果找到了对应的 sessionID,说明我们处于登录状态,所以只要在每次数据请求时保持sessionid是同一个不变就可以用到web的session了,做法是第一次数据请求时就获取sessionid的值并保存在一个静态变量中,然后在第二次请求数据的时候要将这个sessionid一并放在Cookie中发给服务器
常见的方法是这样的,在使用webView加载界面的时候,把需要的标示登录状态的信息传递进去。即:把sessionid传递进去就行了。所以这里用到的知识有,如何获取sessionid,如何把获取的sessionid传递进去。
而且为了更安全sessionid也会被加密哦。