一种浏览器端限制与服务器端建立有效连接的方法技术

技术编号:38836712 阅读:14 留言:0更新日期:2023-09-17 09:53
本发明专利技术包括以下步骤:配置浏览器心跳时间、服务器令牌失效时间;浏览器端向服务器端发送用户名和密码,服务器端验证通过后生成令牌,并返回给浏览器端;浏览器端接收到令牌后将其保存在sessionStorage中,并且每次向服务器请求时携带令牌;设置定时事件,在规定时间内向服务器一直发送请求保持连接;正常退出则立即设置令牌失效,如异常退出,服务器端在规定时间内接收不到浏览器端发送的请求,则设置令牌失效。本发明专利技术有益效果:可灵活配置令牌失效时间和浏览器端心跳时间,不需要考虑浏览器兼容问题,解决客户端限制登录的同时还能有效的避免异常退出带来的令牌失效等待时间,不会影响用户的其他操作,提高交互性。提高交互性。提高交互性。

【技术实现步骤摘要】
一种浏览器端限制与服务器端建立有效连接的方法


[0001]本专利技术属于通用前端
,尤其是涉及一种浏览器端限制与服务器端建立有效连接的方法。

技术介绍

[0002]日常的项目开发中,经常会有浏览器端登录连接服务器的需求,通常的解决方案通过令牌实现,由服务器端生成一串字符串,作为浏览器进行请求的一个标识。当用户第一次登录后,服务器端生成一个字符串令牌,并把令牌返回给浏览器端,浏览器端在每次请求时都会携带这个令牌信息去服务器端请求数据,这样不必每次都携带用户名和密码。也可以给令牌设置一个失效时间,在用户最后一次请求后的一段时间内如果超过设置的失效时间,则设置令牌失效。但是如果需要限制浏览器端登录的话,在一些浏览器端异常退出的情况下,无法确保与服务器端成功通信并告诉服务器端连接关闭,这样就导致浏览器端没有保存登录状态,而服务器端令牌还要等待一个完整的失效时间,如果用户在此时间内登录的话就会出现登录限制问题。
[0003]目前的实现方式主要是通过浏览器beforeunload或unload事件中来进行监听,发送请求去告知服务器断开连接,但是在浏览器异常关闭的时候我们不能确保请求能成功的发送出去,可能会被浏览器直接把请求取消掉,常用的办法就是navigator.sendBeacon和fetch

keepalive,但是这两个方法都具有兼容性问题,且使用上会有很多的限制。

技术实现思路

[0004]有鉴于此,本专利技术旨在提出一种浏览器端限制与服务器端建立有效连接的方法,以至少解
技术介绍
中的至少一个问题。
[0005]为达到上述目的,本专利技术的技术方案是这样实现的:
[0006]一种浏览器端限制与服务器端建立有效连接的方法,包括以下步骤:
[0007]S1、配置浏览器心跳时间、服务器令牌失效时间;
[0008]S2、浏览器端向服务器端发送用户名和密码,服务器端验证通过后生成令牌,并返回给浏览器端;
[0009]S3、浏览器端接收到令牌后将其保存在sessionStorage中,并且每次向服务器请求时携带令牌;
[0010]S4、设置定时事件,在规定时间内向服务器一直发送请求保持连接;
[0011]S5、正常退出则立即设置令牌失效,如异常退出,服务器端在规定时间内接收不到浏览器端发送的请求,则设置令牌失效。
[0012]进一步的,在步骤S1中,具体包括:
[0013]A1、在浏览器端,设计一个心跳函数;
[0014]A2、在服务器端,配置令牌失效时间,通常在生成令牌时设置。
[0015]进一步的,在步骤S2中,具体包括:
[0016]B1、浏览器端通过表单获取用户名和密码,然后发送POST请求到服务器;
[0017]B2、服务器端接收到请求后,提取出用户名和密码,然后进行验证,验证通过后,生成一个令牌并返回给浏览器端。
[0018]进一步的,在步骤S3中,具体包括:
[0019]C1、浏览器端接收到服务器返回的令牌,然后使用sessionStorage.setItem方法将其保存起来;
[0020]C2、每次发送请求时,都在请求头中携带步骤C1中的令牌。
[0021]进一步的,在步骤S4中,具体包括:
[0022]D1、使用JavaScript的setInterval方法,设置一个定时事件;
[0023]D2、在这个事件中,向服务器发送一个请求。
[0024]进一步的,在步骤S5中,具体包括:
[0025]E1、在浏览器端,如果用户点击了“退出”按钮,那么发送一个请求到服务器,告诉服务器用户已经退出,服务器端收到这个请求后,将用户的令牌设置为失效;
[0026]E2、在服务器端,如果在规定的时间内没有收到浏览器端的请求,那么将用户的令牌设置为失效,从而通过在服务器端设置一个定时器来实现。
[0027]进一步的,在步骤A1中,通过使用JavaScript的setInterval方法,设置一个固定的时间间隔,即为浏览器心跳时间。
[0028]进一步的,本方案公开了一种电子设备,包括处理器以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器用于执行一种浏览器端限制与服务器端建立有效连接的方法。
[0029]进一步的,本方案公开了一种服务器,包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行一种浏览器端限制与服务器端建立有效连接的方法。
[0030]进一步的,本方案公开了一种计算机可读取存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现一种浏览器端限制与服务器端建立有效连接的方法。
[0031]相对于现有技术,本专利技术所述的一种浏览器端限制与服务器端建立有效连接的方法具有以下有益效果:
[0032]本专利技术所述的一种浏览器端限制与服务器端建立有效连接的方法,可灵活配置令牌失效时间和浏览器端心跳时间,不需要考虑浏览器兼容问题,解决客户端限制登录的同时还能有效的避免异常退出带来的令牌失效等待时间,不会影响用户的其他操作,提高交互性。
附图说明
[0033]构成本专利技术的一部分的附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:
[0034]图1为本专利技术实施例所述的一种浏览器端限制与服务器端建立有效连接的方法示意图。
具体实施方式
[0035]需要说明的是,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。
[0036]下面将参考附图并结合实施例来详细说明本专利技术。
[0037]心跳机制就是每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到客户端信息则视客户端断开。
[0038]本专利技术通过心跳机制与服务器端进行通信,并且将令牌失效时间设置为最小范围,如果在浏览器异常退出后,服务端接受不到浏览器端发送来的请求,就会将token令牌设置为失效状态,这样就不会影响其他用户的登录了。
[0039]在具体实施过程中,方案如下:
[0040]一种浏览器端限制与服务器端建立有效连接的方法,包括以下步骤:
[0041]S1、配置浏览器心跳时间、服务器令牌失效时间;
[0042]S2、浏览器端向服务器端发送用户名和密码,服务器端验证通过后生成令牌,并返回给浏览器端;
[0043]S3、浏览器端接收到令牌后将其保存在sessionStorage中,并且每次向服务器请求时携带令牌;
[0044]S4、设置定时事件,在规定时间内向服务器一直发送请求保持连接;
[0045]S5、正常退出则立即设置令牌失效,如异常退出,服务器端在规定时间内接收不到浏览器端发送的请求,则设置令牌失效本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种浏览器端限制与服务器端建立有效连接的方法,其特征在于,包括以下步骤:S1、配置浏览器心跳时间、服务器令牌失效时间;S2、浏览器端向服务器端发送用户名和密码,服务器端验证通过后生成令牌,并返回给浏览器端;S3、浏览器端接收到令牌后将其保存在sessionStorage中,并且每次向服务器请求时携带令牌;S4、设置定时事件,在规定时间内向服务器一直发送请求保持连接;S5、正常退出则立即设置令牌失效,如异常退出,服务器端在规定时间内接收不到浏览器端发送的请求,则设置令牌失效。2.根据权利要求1所述的一种浏览器端限制与服务器端建立有效连接的方法,其特征在于,在步骤S1中,具体包括:A1、在浏览器端,设计一个心跳函数;A2、在服务器端,配置令牌失效时间,通常在生成令牌时设置。3.根据权利要求1所述的一种浏览器端限制与服务器端建立有效连接的方法,其特征在于,在步骤S2中,具体包括:B1、浏览器端通过表单获取用户名和密码,然后发送POST请求到服务器;B2、服务器端接收到请求后,提取出用户名和密码,然后进行验证,验证通过后,生成一个令牌并返回给浏览器端。4.根据权利要求1所述的一种浏览器端限制与服务器端建立有效连接的方法,其特征在于,在步骤S3中,具体包括:C1、浏览器端接收到服务器返回的令牌,然后使用sessionStorage.setItem方法将其保存起来;C2、每次发送请求时,都在请求头中携带步骤C1中的令牌。5.根据权利要求1所述的一种浏览器端限制与服务器端建立有效连接的方法,其特征在于,在步骤S4中,具体包括:D1、使用JavaScript的setIn...

【专利技术属性】
技术研发人员:刘魏
申请(专利权)人:紫光云技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1