手机端和网页端使用同一后台时进行会话控制的一种思路
2015-04-25 12:39
761 查看
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/。
——欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/
1.背景
Web端的一次成功的登陆请求后,cookie中会保存此次回话的sessionID,再点击其他页面时,会将此sessionID传递给后台,后台读取对应的session来进行相应逻辑行为;也就是说:session本质上还是要基于cookie的。但是,免费手机网关,不支持cookie传输,于是在手机端的权限验证中,并不能简单的在后台用request.getSession()就得到该手机应用统一的session。解决这个问题,可以在手机应用每一次登陆时,产生该用户的一个token(类似于sessionID),手机应用再次发送请求时带上该token即可。2.具体思路
当手机端和网页端使用同一个后台时,在filter中,可以先判断是否有token传入,如果有则判定为手机请求,通过该token来进行逻辑 判断。如果没有token传入,则进行正常的session判断。3.开发步骤
针对于手机访问来具体描述3.1token表设计
token信息在数据库表中单独存储,与humanID一一对应。3.2token的使用。
3.2.1登陆服务器
手机端人员在登录系统时,需要传用户名和密码过来进行验证。验证通过之后,先删除token表中该人员旧的token信息,同时在token表中新增一条该人员的token记录,并返回到客户端。3.2.2后台访问
手机端在向服务器发送请求的时候,每个请求后面都需要带上token信息作为传入参数。后台会在Filter中先对token信息进行过滤。如果传入的token在token表中不存在,则直接返回到客户端,提示token已过期,请重新登录。如果token验证通过,则正常的访问后台接口。3.2.3多终端访问
手机多终端的访问规则与微信类似,即在另一个终端登录后,当前终端自动登出,保证每次只能有一个终端处于连接状态,每次登录都会刷新token。3.2.4登出
终端人员主动登出时,从token表中移除该人员的token信息。4.注意
为了安全,该token不能使用明文,可以使用对称加密等方法。——欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/
相关文章推荐
- 使用JQUERY进行后台页面布局控制DIV实现左右式
- 使用Camera进行拍照 & 后台静默拍照的思路
- 使用JQUERY进行后台页面布局控制DIV实现左右式
- 控制菜单的比较麻烦的一种思路(不推荐使用),后面还有较为好点的
- 关于ORACLE中使用LIKE进行多字段模糊匹配的一种解决思路
- 在前后端分离的项目中,后台使用shiro框架时,怎样使用它的会话管理系统(session),从而实现权限控制
- v5中使用动态宏和会话变量对数据权限进行控制
- 使用Camera进行拍照 & 后台静默拍照的思路
- java编程中使用二进制进行权限或状态控制
- 初学小结使用Onvif协议进行PTZ控制
- 使用svn进行版本控制
- [转]使用svn进行版本控制
- 008-实现Unity3d中使用LeanTouch插件进行触屏控制(拖拽、移动、缩放旋转...)
- 使用log4j进行日志控制输出
- Android studio如何使用SVN进行版本控制?
- Visual Studio Code 使用Git进行版本控制(图文教程)
- 在Xcode中使用Git进行源码版本控制
- MyEclipse中使用SVN工具进行版本控制
- ubuntu12.04下使用Eclipse进行SVN版本控制
- iOS-在Xcode中使用Git进行源码版本控制(二:提交更改)