做了一个系统的后台,一个需求是当页面没有做任何操作或不再请求后台数据超过指定时间时用户的任意操作都自动跳转到登录页再次进行登录。我在后台(node+express)中配置了session,如图在登录页调用登录接口后,将session初始化也确实能在页面存储中的cookie找到后台发送到前台的session信息。那么要如何实现接下来的步骤,后台要如何识别出用户已经超出指定时间内操作?有没有一套系统化的流程作为一个参考?我想在所有请求前对session进行拦截,但是得到的req.session未定义这些配置与操作是否有误?同时要如何在后台实现session的拦截,从而判定session的失效时间,以及用户在每次操作的过程中重置过期时间?前端是使用vue实现的。希望能得到解答。
1 回答
慕慕森
TA贡献1856条经验 获得超17个赞
首先后台肯定是要登录的对吧?那好,登录之后,登录信息肯定是在session里面存着,如果获取不到就是没有登录。
那么开始判断,如果有就跳到指定页面,如果没有就跳转登录页面,这里要注意了特指页面地址。
上面说了页面那么我们开始来说接口,接口的话肯定都是返回状态值。成功返回state success,接口异常返回 state error,没有登录返回state login。
上面这样后台处理程序能做到的就这么多了。接下来开始前端的设想,页面跳转情况是不用考虑了,后台帮你跳转了,只要考虑接口拉不到数据的问题了。
每一个接口都处理state为login的情况。这个写的有点多。迷之尴尬。
和后台商量好超时时间,每次访问接口都记下时间和判断之前记下的时间,可以通过localstroage和cookie记录时间。这个有两种写法,一种是封装一下ajax过程,强制所有接口调用,jquery好像也有提供,我忘了叫啥了。一种就是同方法1。
前端定时拉取用户信息,时间如果比后台短就是保持心跳,如果比后台长就是自动退出登录?
其他的容我想象一下,比如当前页面变为活动页就去拉取用户信息?比如判断两次操作时间间隔然后拉取用户信息?
jQuery.ajaxSetup 这个可以设置ajax的默认项,然后找一个方法整体的处理一下。这个是jquery支持的,如下图所示,当然还有一些其他的东西,给你来个jQuery的网址
添加回答
举报
0/150
提交
取消