技术新讯 > 电子通信装置的制造及其应用技术 > 基于Token实现的长时间免登录方法及装置与流程  >  正文

基于Token实现的长时间免登录方法及装置与流程

  • 国知局
  • 2024-08-02 14:11:58

本发明涉及数据处理,尤其涉及一种基于token实现的长时间免登录方法、装置及电子设备。

背景技术:

1、用户每次访问应用时都需要输入登录信息,这在移动设备上尤为麻烦,因为屏幕小,输入不便,特别是对于复杂的密码,用户可能因为繁琐的登录流程而转向竞争对手,尤其是那些提供更便捷登录方法的服务。每次用户访问都需要进行身份验证,这要求服务器执行额外的安全检查和数据库查询,不断重复的登录要求可能使用户感到疲劳,尤其是当登录过程繁琐或遇到技术问题(如登录失败、忘记密码等)时更是如此,如果应用要求经常登录,用户可能倾向于设置简单密码或频繁更改密码以便记忆,这反而增加了忘记密码的风险;在一些需要快速访问的场景(如紧急情况下查看医疗信息或进行快速支付)中,次次都需登录显得尤为不便。

2、上述问题成为需要解决的技术问题。

技术实现思路

1、有鉴于此,本发明实施例提供一种基于token实现的长时间免登录方法、装置及电子设备,至少部分解决现有技术中存在的问题。

2、第一方面,本发明实施例提供了一种基于token实现的长时间免登录方法,包括:

3、在用户首次登录时,服务器生成一个唯一的会话标识符session id,并将所述会话标识符session id存储在cookie中,设置cookie的过期时间为预设周期;

4、使用javascript的localstorage api存储用户的认证token,localstorage在浏览器中的数据为持久化模式,localstorage在浏览器中的数据设置有过期时间,每次应用加载时检查localstorage在浏览器中的数据是否过期,使用indexeddb存储复杂或大量身份验证的应用的大型数据集信息,在indexeddb设置过期标志,并定期检查以维护预设时间段的免登录状态;

5、利用sessionstorage保持会话期间的状态,在会话期间之外,通过将sessionstorage与localstorage结合使用来创建复合的认证机制,使得浏览器在关闭之后也能保持用户的登录状态;

6、在用户登录成功后,服务器生成一个jwt,其中包含用户的token身份验证信息,并设置有效期为预设期限,前端javascript代码负责存储所述token身份验证信息,并在每次api请求时将所述token身份验证信息作为认证凭证发送,当应用依赖于第三方登录时,利用oauth 2.0流程获得的访问token和刷新token来管理会话;

7、对于需要同步滚动的表格部分,根据滚动偏移量计算同步滚动的表格部分的新位置,并更新相应的虚拟dom节点以反映这些变化;使用web workers在后台处理认证续期,允许在浏览器后台运行javascript,不干扰主线程,确保免登录机制不受前端ui操作的影响,设置服务端能够识别和验证存储在客户端的cookies中的session id以及localstorage中的token,并支持预设时间段内的免登录访问。

8、根据本公开实施例的一种具体实现方式,所述方法还包括:

9、对存储在客户端的数据进行加密处理,使用https传输安全信息,以及通过实施跨站请求伪造csrf和跨站脚本xss防护措施来增强安全性。

10、根据本公开实施例的一种具体实现方式,所述方法还包括::

11、前端应用通过ajax或fetch api,将用户输入的登录凭证发送到后端服务器的登录api。

12、根据本公开实施例的一种具体实现方式,所述方法还包括::

13、后端接收到登录请求后,验证用户名和密码是否匹配,如果凭证有效,后端会生成一个token,这个token包含了用户的认证信息和有效期;

14、一旦token生成,后端通过http响应体将生成的token发送回前端。

15、根据本公开实施例的一种具体实现方式,所述方法还包括::

16、前端应用收到token后,将token存储在本地,以便于后续的api请求,所述token被存储在localstorage或sessionstorage中。

17、根据本公开实施例的一种具体实现方式,所述方法还包括::

18、在token存储在本地之后,每个api请求中,前端都需要从本地存储中获取这个token,并将其作为http请求头的authorization字段发送给后端,后端验证所述token的有效性来认证请求。

19、根据本公开实施例的一种具体实现方式,所述方法还包括::

20、服务器将生成的会话标识符存储在数据库或内存中,与用户的登录信息相关联,当用户发送请求时,服务器可以查找对应的会话标识符来验证用户的身份;

21、服务器将会话标识符作为cookie的一部分发送给用户的浏览器,当用户的浏览器接收到cookie后,在后续的请求中自动包含这个cookie,从而允许服务器识别用户的会话。

22、在服务器会设置预设周期,所述预设周期为动态过期时间,服务器根据用户的活动来延长或缩短所述预设周期的时长;

23、在会话期间,服务器使用存储的会话标识符来跟踪和管理用户的活动,包括验证用户的身份、授权访问特定的资源以及记录用户的操作历史;

24、设置cookie的secure和httponly属性来增加安全性,secure属性确保cookie只能通过https协议传输,httponly属性防止javascript访问cookie,从而减少了跨站脚本攻击(xss)的风险;

25、当用户注销或检测到异常活动时,服务器删除相关的会话标识符或使相关的会话标识符无效。

26、根据本公开实施例的一种具体实现方式,所述方法还包括::

27、当用户成功登录时,将认证token和过期时间戳存储到localstorage中;

28、在用户的浏览器会话期间,将相同的token或其他会话状态信息从localstorage复制到sessionstorage,利用sessionstorage的事件监听机制来监听会话期间的状态变化;

29、当用户重新打开浏览器并访问应用时,检查localstorage中是否存在有效的token,如果存在,将其复制到sessionstorage中,并恢复用户的会话状态;

30、定期检查localstorage中的token是否过期,如果过期,清除localstorage和sessionstorage中的数据,并要求用户重新登录。

31、第二方面,本发明实施例提供了一种基于token实现的长时间免登录装置,包括:

32、生成模块,在用户首次登录时,服务器生成一个唯一的会话标识符session id,并将所述会话标识符session id存储在cookie中,设置cookie的过期时间为预设周期;

33、设置模块,使用javascript的localstorage api存储用户的认证token,localstorage在浏览器中的数据为持久化模式,localstorage在浏览器中的数据设置有过期时间,每次应用加载时检查localstorage在浏览器中的数据是否过期,使用indexeddb存储复杂或大量身份验证的应用的大型数据集信息,在indexeddb设置过期标志,并定期检查以维护预设时间段的免登录状态;

34、创建模块,利用sessionstorage保持会话期间的状态,在会话期间之外,通过将sessionstorage与localstorage结合使用来创建复合的认证机制,使得浏览器在关闭之后也能保持用户的登录状态;

35、管理模块,在用户登录成功后,服务器生成一个jwt,其中包含用户的token身份验证信息,并设置有效期为预设期限,前端javascript代码负责存储所述token身份验证信息,并在每次api请求时将所述token身份验证信息作为认证凭证发送,当应用依赖于第三方登录时,利用oauth 2.0流程获得的访问token和刷新token来管理会话;

36、执行模块,对于需要同步滚动的表格部分,根据滚动偏移量计算同步滚动的表格部分的新位置,并更新相应的虚拟dom节点以反映这些变化;使用web workers在后台处理认证续期,允许在浏览器后台运行javascript,不干扰主线程,确保免登录机制不受前端ui操作的影响,设置服务端能够识别和验证存储在客户端的cookies中的session id以及localstorage中的token,并支持预设时间段内的免登录访问。

37、第三方面,本发明实施例还提供了一种电子设备,该电子设备包括:

38、至少一个处理器;以及,

39、与该至少一个处理器通信连接的存储器;其中,

40、该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行前述任第一方面或第一方面的任一实现方式中的基于token实现的长时间免登录方法。

41、第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行前述第一方面或第一方面的任一实现方式中的基于token实现的长时间免登录方法。

42、第五方面,本发明实施例还提供了一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,该计算机程序包括程序指令,当该程序指令被计算机执行时,使该计算机执行前述第一方面或第一方面的任一实现方式中的基于token实现的长时间免登录方法。

43、本发明实施例中的基于token实现的长时间免登录方案,包括:在用户首次登录时,服务器生成一个唯一的会话标识符session id,并将所述会话标识符session id存储在cookie中,设置cookie的过期时间为预设周期;使用javascript的localstorage api存储用户的认证token,localstorage在浏览器中的数据为持久化模式,localstorage在浏览器中的数据设置有过期时间,每次应用加载时检查localstorage在浏览器中的数据是否过期,使用indexeddb存储复杂或大量身份验证的应用的大型数据集信息,在indexeddb设置过期标志,并定期检查以维护预设时间段的免登录状态;利用sessionstorage保持会话期间的状态,在会话期间之外,通过将sessionstorage与localstorage结合使用来创建复合的认证机制,使得浏览器在关闭之后也能保持用户的登录状态;在用户登录成功后,服务器生成一个jwt,其中包含用户的token身份验证信息,并设置有效期为预设期限,前端javascript代码负责存储所述token身份验证信息,并在每次api请求时将所述token身份验证信息作为认证凭证发送,当应用依赖于第三方登录时,利用oauth 2.0流程获得的访问token和刷新token来管理会话;对于需要同步滚动的表格部分,根据滚动偏移量计算同步滚动的表格部分的新位置,并更新相应的虚拟dom节点以反映这些变化;使用web workers在后台处理认证续期,允许在浏览器后台运行javascript,不干扰主线程,确保免登录机制不受前端ui操作的影响,设置服务端能够识别和验证存储在客户端的cookies中的sessionid以及localstorage中的token,并支持预设时间段内的免登录访问。本技术的方案,既确保了用户的便捷访问,又兼顾了系统的安全和稳定性,为用户提供了一个既方便又安全的长期身份验证解决方案。

本文地址:https://www.jishuxx.com/zhuanli/20240801/241993.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。