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

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不能使用明文,可以使用对称加密等方法。

时间: 2024-10-10 20:37:44

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

手机端与网页通过websocket通信

手机端与网页通讯,使用websocket完成二者之间的联通. websocket选用socket.io类实现. 服务器端,使用nodejs,代码依赖了express和socket.io. 首先建立一个http服务器 var app = require('express')(); var server = require('http').Server(app); var socketio = require('./v1/socketio'); var db = require("./db/db.j

CSS3及JS简单实现选项卡效果(适配手机端和pc端)

想要适配手机端和pc端,有几种简单的方法,本人使用的是百分比分配的方法. *{ padding: 0; margin: 0; } body,html{ width: 100%; height: 100%; overflow: hidden; } #bottom_box{ width: 100%; height: 50px; background-color: #eee; display: flex; //这是flex布局,父元素设置为flex,子元素设置几等份就是分成几等份 position:

手机端和PC端分别加载不同的js文件

分手机端和PC端其实方法很多,我们在响应式设计.响应式网站建设中经常碰到此类需求.下面说说我们在项目中遇到的需求: 手机端和PC端分别加载不同的js客服代码(注意:是要在PC和手机端分别加载不同的js文件) 第一种方法(简单型): <script type="text/javascript"> // 根据屏幕尺寸 if (screen && screen.width > 480) { document.write('<script type=&q

七牛用户如何将视频转码成普清高清来适应不同的手机端或者web端

Qiniu 七牛问题解答 非常多人会用到七牛视频转码问题,要将视频转码成适用于各种终端的视频,也有的用户对转码服务的码率,帧率,分辨率等理解不多.不知道该怎样设置这些參数.以下我给大家科普一下. 问题解决方式 1,我们在七牛后台提供了各种转码的有用參数.大家能够看下: 假设你想要查看上面图片中各种处理样式的内容能够选中后,在以下会有參数的设定字符串. 2,用户存在一个误区,就是他并不知道码率,和帧率等參数的设定,事实上你用七牛转码的时候,转成某类的视频格式,是採用默认的码率等信息的.不用特定的去

使用js判断手机端和pc端浏览器内核

<span style="font-size:24px;color:#ff0000;">手机端:</span> <span style="font-size:14px;color:#339999;">//判断浏览器 var browser = { versions : function() { var u = navigator.userAgent, app = navigator.appVersion; return { tri

七牛用户怎样将视频转码成普清高清来适应不同的手机端或者web端

Qiniu 七牛问题解答 很多人会用到七牛视频转码问题,要将视频转码成适用于各种终端的视频,也有的用户对转码服务的码率,帧率,分辨率等理解不多.不知道该如何设置这些参数.下面我给大家科普一下. 问题解决方案 1,我们在七牛后台提供了各种转码的实用参数.大家可以看下: 如果你想要查看上面图片中各种处理样式的内容可以选中后,在下面会有参数的设定字符串. 2,用户存在一个误区,就是他并不知道码率,和帧率等参数的设定,其实你用七牛转码的时候,转成某类的视频格式,是采用默认的码率等信息的.不用特定的去设置

php 判断是否手机端还是pc端

来自:https://www.cnblogs.com/webenh/p/5621890.html 用手机访问PC端WWW域名的时候,自动判断跳转到移动端,用电脑访问M域名手机网站的时候,自动跳转到PC端,我们团队在开发erdaicms二代旅游CMS网站管理系统的时候(http://www.erdaicms.com),分别开发了PC端和手机端,需要实现,用手机访问PC端WWW域名的时候,自动判断跳转到移动端,用电脑访问M域名手机网站的时候,自动跳转到PC端,于是有了下面这个判断函数: 1 /*移动

Nginx如何处理手机端和PC端跳转不同页面

server模块下添加----------if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') {    rewrite ^.+ http://mobile.test.com/mobile/$uri;}----------其中mobile为手机端的路径标识, 可以自定义修改. 原文地址:https://www.cnblogs.com/lazy-sang/p/12394879.html

js判断浏览器是手机端还电脑端

由于手机和电脑分辨率不同,所以有的时候浏览网页的时候需要区分是手机浏览还是电脑浏览,然后指向指定页面展示,下面就是js区分代码. <script type=”text/javascript”> //平台.设备和操作系统 var system ={ win : false, mac : false, xll : false }; http://dict.baidu.com/s?wd=%E6%B4%9B%E4%B8%BD%E8%AF%97+%E4%BD%A0%E7%9A%84%E9%80%89%E