手机端和网页端使用同一后台时进行会话控制的一种思路

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处: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/

时间: 2024-10-26 17:56:26

手机端和网页端使用同一后台时进行会话控制的一种思路的相关文章

横竖屏切换-android app启动时根据是手机端还是Pad端进行横竖屏判断,以及不同布局

问题描述 android app启动时根据是手机端还是Pad端进行横竖屏判断,以及不同布局 如何判断一个app,如果运行在平板上,就横屏展示,如果运行在手机上就竖屏展示.而且在这两个端不允许横竖屏切换.而且MainActivity得长的不一样.意思就是要有两套布局.需要建什么资源文件夹 解决方案 http://jingyan.baidu.com/article/455a9950aa8aaea16627788a.html

thinkphp判断访客为手机端或PC端的方法_php实例

本文实例讲述了thinkphp判断访客为手机端或PC端的方法.分享给大家供大家参考.具体实现方法如下: 一.问题: 近日准备给自己的网站做一个小升级,让用户在手机二维码扫描的时候显示适合手机端来展示的模版[我用的是ThinkPHP3.0],代码是参考别人的 二.实现方法: 这里先说下大概的一个思路 简单两步: 统版本号和浏览器以及它的版本号(贴出的代码中数组中只有移动端信息,因此后面只需判断是否为数组中的某一个值即可). 根据数组中的值来判断访客是否为手机.pad.之类的移动端,如果是的话就规定

android在真机调试时手机端与pc端通信失败

问题描述 android在真机调试时手机端与pc端通信失败 我写的一个通信程序,在android模拟器与pc端可以正常通信,但是用真机调试时就连接不上,查看错误日志,显示不能连接/192.168.....? 解决方案 用的什么协议?这么看来可能是你的地址写错了 解决方案二: 你的意思是不能部署项目到手机还是网络通信的时候连接不上?如果是前者的话应该是驱动的问题或者重启下ADB,如果是后者的话你就看看你的服务器端的地址是不是可以访问,如果连接的是同一个局域网内IP地址对的话是可以的通信的,那就是代

移动开发-手机端和移动端的样式不一样

问题描述 手机端和移动端的样式不一样 如果用户用的是手机端,则高度为100,如果是平板则高度是200 请问如何区分是手机端还是平板或电脑端 解决方案 height:auto 设置为自动,不可以吗 解决方案二: 先判断设备 后判断样式查询来写

手机端和web端能不能同时登陆?

问题描述 手机端和web端能不能同时登陆?如果可以,消息的收发会有什么问题吗? 解决方案 同一个账号在同一时刻只能登陆一个设备.之前登陆的这个账号会被后来登陆的同一个账号踢掉.上面这句话是针对app端的.web端和app端可以共存.

PHP判断是手机端还是PC端 PHP判断是否是微信浏览器

本文实例为大家分享了PHP判断的两个实例,一是PHP判断是手机端还是PC端,二是PHP判断是否是微信浏览器,供大家参考,具体内容如下 1.判断是否是手机端 function isMobile() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) { return true; } // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息 if (isset($_SERVER['H

电影站点运营应该手机端和PC端两者兼顾

电影网站经历了波峰,也经历过波谷,如今算是进入一个平稳期.虽然国家规定电影网站需要视听许可证,但互联网上还是存在着大量没有这些证件的电影网站.我们姑且不讨论这些话题,直接进入笔者今天要分享的电影网站的运营方式. 电影网站的站长朋友们要有一个认识,如今电影网站面向用户不要仅仅只是针对PC端用户,在人们越来越离不开手机的情况下,在手机上观看电影的朋友只会越来越多,所以网站一定要对手机端用户进行页面优化.而笔者对电影网站的运营模式是这样的: 一.网站的手机端页面优化 如上面所说,在手机上看电影的用户越

android手机端与PC端使用adb forword通信

PC端与Android手机端使用adb forword通信 服务器端代码如下: import java.io.IOException; import java.io.ObjectOutputStream; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class Server { public static final String TAG = "ser

支付宝调整转账费率:手机端免费 PC端收费

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 11月17日消息,支付宝今日发布公告,将对个人用户支付宝账户间转账服务的优惠政策进行调整,支付宝钱包账户间转账仍然继续免费. 公告称,用户在电脑上进行支付宝账户间转账,费率进行下调: 费率从原有的0.5%降低为0.1%,0.5元起收,10元封顶,按每笔交易收取.原有的费率及免费转账额度从2013年12月03日起停用.此前,PC端支付宝账户间转账时,如果是实名认证用户