用户登录,前后端如何交互判断是否登录超时!

背景:用户登录过该网站,但是用户并不是永远都处于登陆状态,接下来就探讨下,我们是什么时机对用户登陆状态进行校验并且校验后  登录超时  应该如何处理。

第一步:用户输入用户名密码后点击登录,客户端会调用登录接口,将用户数据传递给服务端,这是服务端干了什么呢。看下下边的截图1和截图2
服务端接收到用户请求后,login接口会进行setCokkie操作将用户的部分用户标示信息存在cookie中(例如用户userNo等),同时响应头(response Header)中看到setcookie的信息(截图1),(说明:这里说明一下,这个cookie是前后端都能获取 、操作的,客户端向cookie中写内容,请求接口的时候会把cookie中的内容通过resquest header请求头把cookie信息发送给服务端;同理,服务端setCookie设置了cookie之后,会把cookie信息通过相应头发送到客户端,同时在客户端中能获取服务端发送回来的cookie)

 

第二步: 第一步之后,用户信息关于登录的内容就在前后端存在了,下面说下,怎么判断用户访问网页过程中是否还处于登录阶段:
       客户端再进行调用接口的操作的时候,就会把第一步中的cookie一起通过  请求头(request Header)发送给服务端,服务端 除了接收到接口传递的正常参数外,还要接受cookie中的内容,然后去拿cookie中的用户标示去和  服务端缓存redis 中的用户信息进行查找(具体怎么对比查找自行学习),如果redis中没有该用户的相关信息就表示登录超时,这个接口就会返回给客户端一个标示  例如:status = 1002  (这个是自己定义的  不一定就是我写的这个,什么标示自己定)
 

第三步: 客户端拿到status = 1002这个标示后,知道该用户已经超时,直接 把页面跳转到登录页面,不允许用户再访问。

第四步: 还有一个判断用户登录状态的点;就是用户刚刚访问页面(或者路由)还没有进行接口访问的时候进行判断,因为如果此时用户就登录超时 了  ,页面中又没有接口请求,但是页面的内容我们也是不允许被看到的,所以用户刚刚进入页面的时候就要进行登录超时判断,
方法: 可以通过调用一个登录超时判断接口 checklogin去让服务端进行判断该用户是否登录超时,返回status=1002后,客户端判断到登录超时了,直接就重定向到登陆页。这样没有接口请求的页面也能不被超时用户所访问到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值