zoukankan      html  css  js  c++  java
  • 手机端和网页端使用同一后台时进行会话控制的一种思路

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

  • 相关阅读:
    debian的xfce内多余的菜单位置
    cocos2dx学习笔记之图片分辨率适配
    cocos2dx学习笔记之辅助工具
    cocos2dx游戏开发必备工具之PhysicsEditor【ZT】
    cocos2dx学习笔记之粒子效果
    mac下直接下载xcode的地址
    无需花生壳,dnspod实现ddns
    android和view相关的东西
    android的一些经典三方库
    简单工厂模式扩展工厂方法模式
  • 原文地址:https://www.cnblogs.com/naaoveGIS/p/4455744.html
Copyright © 2011-2022 走看看