CN112861092A - 基于jwt认证应用实现单终端登录限制的方法及*** - Google Patents

基于jwt认证应用实现单终端登录限制的方法及*** Download PDF

Info

Publication number
CN112861092A
CN112861092A CN202110302234.1A CN202110302234A CN112861092A CN 112861092 A CN112861092 A CN 112861092A CN 202110302234 A CN202110302234 A CN 202110302234A CN 112861092 A CN112861092 A CN 112861092A
Authority
CN
China
Prior art keywords
user
session
client
module
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110302234.1A
Other languages
English (en)
Other versions
CN112861092B (zh
Inventor
袁柯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Hc System Control Technology Co ltd
Original Assignee
Shanghai Hc System Control Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Hc System Control Technology Co ltd filed Critical Shanghai Hc System Control Technology Co ltd
Publication of CN112861092A publication Critical patent/CN112861092A/zh
Application granted granted Critical
Publication of CN112861092B publication Critical patent/CN112861092B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明提供了一种基于JWT认证应用实现单终端登录限制的方法及***,包括:步骤S1:客户端获取当前终端类型,发起登录请求;步骤S2:服务端解析登录请求,获取终端类型,进行用户认证;步骤S3:服务端用户认证成功后生成认证凭据JWT Token;步骤S4:服务端根据终端类型及认证凭据维护用户会话名单;步骤S5:服务端响应登录请求,客户端保留认证凭据;步骤S6:客户端携带认证凭据发起业务请求;步骤S7:服务端根据用户会话名单拦截校验所有请求,会话失效则响应下线信息;步骤S8:客户端接收下线信息,进行强制下线处理。

Description

基于JWT认证应用实现单终端登录限制的方法及***
技术领域
本发明涉及***安全技术领域,具体地,涉及基于JWT认证应用实现单终端登录限制的方法及***。
背景技术
一般Web应用涉及到会话管理功能都是采用的Session,会话数据都是存放在服务端,由其进行控制管理,而JWT是将会话数据存储在客户端,属于无状态,服务端不保留任何其任何信息,所以会话管理是其先天劣势。为了解决此问题,一般由服务端将所有签发的Token记录到数据库中进行管理,此方式对已有的JWT认证应用,为了实现相关功能需要较大变更且逻辑复杂。
当前方法,由服务端记录只必要Token字段,分布式缓存维护会话,实现逻辑清晰,简洁稳定,变更较少且性能较高。
专利文献CN106603713A(申请号:201611266512.8)公开了一种会话管理方法,该方法包括:在收到客户端发送的会话请求时,获取所述会话请求携带的会话令牌和缓存版本号;在服务器本地查找所述会话令牌对应的服务端缓存;若成功找到所述会话令牌对应的服务端缓存,则根据所述缓存版本号判断所述服务端缓存是否是最新版本;若未找到所述会话令牌对应的服务端缓存,或所述服务端缓存不是最新版本,则从分布式缓存集群中获取所述会话令牌对应的服务端缓存,根据所述会话请求进行会话操作。
专利文献CN110445814A(申请号:201910890677.X)公开了一种基于会话的多用户并发登录控制方法、基于会话的多用户并发登录控制设备、***、计算机设备以及计算机可读存储介质,涉及数据处理技术领域。所述方法包括:采集用户输入的登录请求,所述登录请求用于请求登录业务***;根据所述登录请求进行登录处理;监听所述用户登录所述业务***后的操作信息;根据所述操作信息进行会话控制。本发明通过检测是否有相同会话ID的用户已经登录了***,若是则拒绝用户继续登录***,避免了业务***中的数据错乱。该专利与本申请业务目的不同,虽然都涉及到了会话管理。本申请的会话控制精确到同一终端类型下,逻辑简单,不影响新用户的登录。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于JWT认证应用实现单终端登录限制的方法及***。
根据本发明提供的一种基于JWT认证应用实现单终端登录限制的方法,包括:
步骤S1:客户端获取当前终端类型,发起登录请求;
步骤S2:服务端解析登录请求,获取终端类型,进行用户认证;
步骤S3:服务端用户认证成功后生成认证凭据JWT Token;
步骤S4:服务端根据终端类型及认证凭据维护用户会话名单;
步骤S5:服务端响应登录请求,客户端保留认证凭据;
步骤S6:客户端携带认证凭据发起业务请求;
步骤S7:服务端根据用户会话名单拦截校验所有请求,会话失效则响应下线信息;
步骤S8:客户端接收下线信息,进行强制下线处理。
优选地,所述终端类型包括:移动应用终端类型、网页应用终端类型或自定义类型。
优选地,所述步骤S1包括:客户端通过使用账号凭据向服务端发起登录请求,同时将终端类型作为参数传递至服务端。
优选地,所述步骤S2包括:服务端获取账号凭据,查询数据库用户信息进行匹配校验,匹配错误则直接返回响应,向客户端提示错误。
优选地,所述步骤S4包括:
步骤S4.1:维护用户Token白名单,用于记录当前所有用户在各终端下的有效会话记录;
步骤S4.2:维护用户会话白名单,用于记录当前所有的有效会话记录;
步骤S4.3:维护用户会话黑名单,用于记录过去预设时间内的无效会话记录。
优选地,所述步骤S7包括:
步骤S7.1:在所有请求入口处对请求进行拦截并解析,获取用户会话标识SID;
步骤S7.2:根据用户会话标识SID判断是否在用户会话白名单缓存中,当不存在时则当前会话已失效,需要使客户端登出下线,同时根据用户会话标识SID在用户会话黑名单中查找详细登出原因,终止请求流程,将响应状态设置为401错误,同时返回具体登出信息。
优选地,所述步骤S8包括:客户端在接收到401错误响应时,向用户展示强制下线详情提示,确认下线信息后,客户端跳转至登录页面。
根据本发明提供的一种基于JWT认证应用实现单终端登录限制的***,包括:
模块M1:客户端获取当前终端类型,发起登录请求;
模块M2:服务端解析登录请求,获取终端类型,进行用户认证;
模块M3:服务端用户认证成功后生成认证凭据JWT Token;
模块M4:服务端根据终端类型及认证凭据维护用户会话名单;
模块M5:服务端响应登录请求,客户端保留认证凭据;
模块M6:客户端携带认证凭据发起业务请求;
模块M7:服务端根据用户会话名单拦截校验所有请求,会话失效则响应下线信息;
模块M8:客户端接收下线信息,进行强制下线处理。
优选地,所述终端类型包括:移动应用终端类型、网页应用终端类型或自定义类型;
所述模块M1包括:客户端通过使用账号凭据向服务端发起登录请求,同时将终端类型作为参数传递至服务端;
所述模块M2包括:服务端获取账号凭据,查询数据库用户信息进行匹配校验,匹配错误则直接返回响应,向客户端提示错误。
优选地,所述模块M4包括:
模块M4.1:维护用户Token白名单,用于记录当前所有用户在各终端下的有效会话记录;
模块M4.2:维护用户会话白名单,用于记录当前所有的有效会话记录;
模块M4.3:维护用户会话黑名单,用于记录过去预设时间内的无效会话记录。
所述模块M7包括:
模块M7.1:在所有请求入口处对请求进行拦截并解析,获取用户会话标识SID;
模块M7.2:根据用户会话标识SID判断是否在用户会话白名单缓存中,当不存在时则当前会话已失效,需要使客户端登出下线,同时根据用户会话标识SID在用户会话黑名单中查找详细登出原因,终止请求流程,将响应状态设置为401错误,同时返回具体登出信息;
所述模块M8包括:客户端在接收到401错误响应时,向用户展示强制下线详情提示,确认下线信息后,客户端跳转至登录页面。
与现有技术相比,本发明具有如下的有益效果:
1、本发明通过采用由客户端发起登录请求主动标记终端类型的方式,解决了常规通过请求自带Header属性来判断终端类型的识别结果不准确、不可靠问题;
2、本发明通过采用记录Token所属会话标识白名单,而非Token本身标识白名单的方式,解决了Token续签过程中,由于并发请求导致的新旧Token接替不稳定问题,以及为了处理此并发问题而导致的代码逻辑复杂的问题,因为会话是不需要续签的;
3、本发明通过在Token中追加会话属性,以及分布式缓存中记录其会话白名单,解决Token本身的无状态问题,以及通过追加变更而非覆盖已有功能,未涉及数据库等操作,以较小变更成本且较高性能实现了会话管理功能;
4、本发明通过采用在登录时维护用户Token白名单、会话白名单和会话黑名单的方式,将主要性能成本花销放在了登录时的一次性操作,使其它***功能几乎不受影响;
5、本发明通过采用分布式缓存服务,使此方法使用于集群应用。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为基于JWT认证应用实现单终端登录限制的方法流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
实施例1
根据本发明提供的一种基于JWT认证应用实现单终端登录限制的方法,包括:
步骤S1:客户端获取当前终端类型,发起登录请求;
步骤S2:服务端解析登录请求,获取终端类型,进行用户认证;
步骤S3:服务端用户认证成功后生成认证凭据JWT Token;
步骤S4:服务端根据终端类型及认证凭据维护用户会话名单;
步骤S5:服务端响应登录请求,客户端保留认证凭据;
步骤S6:客户端携带认证凭据发起业务请求;
步骤S7:服务端根据用户会话名单拦截校验所有请求,会话失效则响应下线信息;
步骤S8:客户端接收下线信息,进行强制下线处理。
具体地,所述终端类型包括:移动应用终端类型、网页应用终端类型或自定义类型。
具体地,所述步骤S1包括:客户端通过使用账号凭据向服务端发起登录请求,同时将终端类型作为参数传递至服务端。
具体地,所述步骤S2包括:服务端获取账号凭据,查询数据库用户信息进行匹配校验,匹配错误则直接返回响应,向客户端提示错误。
具体地,所述步骤S4包括:
步骤S4.1:维护用户Token白名单,用于记录当前所有用户在各终端下的有效会话记录;
步骤S4.2:维护用户会话白名单,用于记录当前所有的有效会话记录;
步骤S4.3:维护用户会话黑名单,用于记录过去预设时间内的无效会话记录。
具体地,所述步骤S7包括:
步骤S7.1:在所有请求入口处对请求进行拦截并解析,获取用户会话标识SID;
步骤S7.2:根据用户会话标识SID判断是否在用户会话白名单缓存中,当不存在时则当前会话已失效,需要使客户端登出下线,同时根据用户会话标识SID在用户会话黑名单中查找详细登出原因,终止请求流程,将响应状态设置为401错误,同时返回具体登出信息。
具体地,所述步骤S8包括:客户端在接收到401错误响应时,向用户展示强制下线详情提示,确认下线信息后,客户端跳转至登录页面。
根据本发明提供的一种基于JWT认证应用实现单终端登录限制的***,包括:
模块M1:客户端获取当前终端类型,发起登录请求;
模块M2:服务端解析登录请求,获取终端类型,进行用户认证;
模块M3:服务端用户认证成功后生成认证凭据JWT Token;
模块M4:服务端根据终端类型及认证凭据维护用户会话名单;
模块M5:服务端响应登录请求,客户端保留认证凭据;
模块M6:客户端携带认证凭据发起业务请求;
模块M7:服务端根据用户会话名单拦截校验所有请求,会话失效则响应下线信息;
模块M8:客户端接收下线信息,进行强制下线处理。
具体地,所述终端类型包括:移动应用终端类型、网页应用终端类型或自定义类型;
所述模块M1包括:客户端通过使用账号凭据向服务端发起登录请求,同时将终端类型作为参数传递至服务端;
所述模块M2包括:服务端获取账号凭据,查询数据库用户信息进行匹配校验,匹配错误则直接返回响应,向客户端提示错误。
具体地,所述模块M4包括:
模块M4.1:维护用户Token白名单,用于记录当前所有用户在各终端下的有效会话记录;
模块M4.2:维护用户会话白名单,用于记录当前所有的有效会话记录;
模块M4.3:维护用户会话黑名单,用于记录过去预设时间内的无效会话记录。
所述模块M7包括:
模块M7.1:在所有请求入口处对请求进行拦截并解析,获取用户会话标识SID;
模块M7.2:根据用户会话标识SID判断是否在用户会话白名单缓存中,当不存在时则当前会话已失效,需要使客户端登出下线,同时根据用户会话标识SID在用户会话黑名单中查找详细登出原因,终止请求流程,将响应状态设置为401错误,同时返回具体登出信息;
所述模块M8包括:客户端在接收到401错误响应时,向用户展示强制下线详情提示,确认下线信息后,客户端跳转至登录页面。
实施例2
实施例2是实施例1的变化例
本发明可在JWT(JSON Web Token)认证的应用中,实现单终端登录限制。本发明以各种黑、白名单低成本的实现JWT的高效会话管理,继而实现单终端登录限制功能。
单终端登录(单用户登录)限制指一个账号只允许同时在一个pc终端或一个手机终端登录,支持同时登录。
一种基于JWT认证应用实现单终端登录限制的方法包括:
在登录请求中标记客户端的终端类型,以精确控制各终端类型下的登录限制。
在Token中增加会话属性,通过该属性关联签发、续签的Token,解决Token无状态的问题,以实现稳定可靠的会话延续。
在分布式缓存中维护用户Token白名单、用户会话白名单、用户会话黑名单,以实现灵活的会话限制;
进行全局请求拦截校验,匹配分布式缓存中会话白名单,以实现高效的会话下线通知。
如图1所示,具体步骤如下:
步骤1:客户端发起登录请求
步骤2:服务端对登录请求解析
步骤3:服务端生成JWT Token
步骤4:服务端维护用户会话
步骤5:服务端响应登录请求
步骤6:客户端发起业务请求
步骤7:服务端拦截校验所有请求
步骤8:客户端进行下线处理
步骤1:客户端发起登录请求
(1)获取当前终端类型。通过与服务端约定,移动应用终端类型为APP,网页应用终端类型为WEB,或者其它自定义类型,在应用中固定当前终端类型。
(2)用户登录,发起登录请求。客户端通过使用用户填写的账号凭据如用户名和密码,向服务端发起登录请求,同时将终端类型作为参数传递。
步骤2:服务端对登录请求解析
(1)获取登录请求中的终端类型。服务端获取终端类型,若无该参数值则设置为默认值如APP,若该参数值无效则直接返回响应,向客户端提示错误。
(2)获取登录请求中的账号凭据。服务端获取账号凭据,查询数据库用户信息进行匹配校验,匹配错误则直接返回响应,向客户端提示错误。
步骤3:服务端生成JWT Token
(1)生成用户会话标识SID。SID为***唯一,其中客户端类型信息,组成如“登录时间戳-客户端类型-其它随机值”。SID生成分为两种情况:登录,生成新的SID;续签,重用Token已存在的SID。
(2)生成refresh token及access token。通用JWT Token的使用方式包含refreshtoken和access token这两种Token,refresh token代表用户认证,用于刷新accesstoken,有效期较长(如7天);access token代表用户授权,用于资源方式,有效期较短(如5分钟)。用户认证成功后则会向客户端颁发这两种Token,每个Token都有自身的唯一ID,向其中追加会话标识SID,关联两者。
步骤4:服务端维护用户会话
(1)维护用户Token白名单,用于记录当前所有用户在各终端下的有效会话记录。
根据业务需求,如当前需要实现单终端登录,即在同一时间同一用户在同一类型终端下只允许有一个会话存在。
以key-value数据结构形式,key为“用户标识UID-终端类型”,value为多个用户Token对象(非JWT Token本身)的List集合,每个用户Token对象代表一次登录记录,其中属性包含会话标识SID、登录时间、终端类型、refresh token过期时间、access token过期时间等,存储到分布式缓存服务中,长久有效。
登录时,根据当前登录用户标识UID及终端类型,以此为key找到对应用户Token集合,新建一条用户Token记录追加到其中。根据单终端限制,此用户Token集合中至多只能存在一条记录(此限制可以根据需求灵活调整),故移除其它记录,同时移除用户会话白名单中相应记录。
续签时,根据当前登录用户标识UID及终端类型,以此为key找到对应用户Token集合,然后根据会话标识SID找到对应用户Token记录,更新其refresh token和access token相关属性。
(2)维护用户会话白名单,用于记录当前所有的有效会话记录。
在用户Token维护时,同步将当前登录用户的会话记录维护到会话白名单中。以key-value数据结构形式,key为“会话标识SID”,value为“用户标识UID-终端类型”,存储到分布式缓存服务中,有效期等同于refresh token有效期。
(3)维护用户会话黑名单,用于记录过去短时间内的无效会话记录。
在用户会话白名单维护时,监听其移除、过期行为,同步将其目标用户会话记录会话黑名单中。以key-value数据结构形式,key为“会话标识SID”,value为“登出类型-详细信息”,存储到分布式缓存服务中,有效期1小时。
黑名单的目的是为了提供详细的下线信息,属优化功能,若无详细信息则直接提示模糊信息即可,可根据实际需求调整保留时间。
在以上流程中,同一用户在终端类型相同但是多个终端上登录时,先产生的用户Token及用户会话缓存,会因后续的登录行为,导致其失效。如,用户A分别先后在终端WEB1和终端WEB2上登录,产生用户Token1、SID1和用户Token2、SID2,则用户Token1会从用户Token白名单移除,同时SID1会从用户会话白名单移除,加入到用户会话黑名单中。
步骤5:服务端响应登录请求
响应登录请求,登录成功,返回认证凭据Token信息,否则返回登录失败原因。
步骤6:客户端发起业务请求
客户端携带由服务端返回的认证凭据Token,发起业务请求。
步骤7:服务端拦截校验所有请求
(1)在所有请求入口处对请求进行拦截并解析Token,获取其中的用户会话标识SID。
(2)以用户会话标识SID为key判断其是否在用户会话白名单缓存中,若不存在则说明当前会话已失效,需要使客户端登出下线,同时以用户会话标识SID为key在用户会话黑名单中查找详细登出原因,终止请求流程,将响应状态设置为401,同时返回具体登出信息。
步骤8:客户端进行下线处理
(1)客户端在接收到401响应时,向用户展示强制下线详情提示,如“您的账号于16:29在其他设备登录,当前设备已被登出。如非本人操作,建议您修改密码。”,同时禁止所有功能操作,并清除认证凭据Token。
(2)用户确认下线信息后,客户端即可跳转至登录页面。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的***、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的***、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的***、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (10)

1.一种基于JWT认证应用实现单终端登录限制的方法,其特征在于,包括:
步骤S1:客户端获取当前终端类型,发起登录请求;
步骤S2:服务端解析登录请求,获取终端类型,进行用户认证;
步骤S3:服务端用户认证成功后生成认证凭据JWT Token;
步骤S4:服务端根据终端类型及认证凭据维护用户会话名单;
步骤S5:服务端响应登录请求,客户端保留认证凭据;
步骤S6:客户端携带认证凭据发起业务请求;
步骤S7:服务端根据用户会话名单拦截校验所有请求,会话失效则响应下线信息;
步骤S8:客户端接收下线信息,进行强制下线处理。
2.根据权利要求1所述的基于JWT认证应用实现单终端登录限制的方法,其特征在于,所述终端类型包括:移动应用终端类型、网页应用终端类型或自定义类型。
3.根据权利要求1所述的基于JWT认证应用实现单终端登录限制的方法,其特征在于,所述步骤S1包括:客户端通过使用账号凭据向服务端发起登录请求,同时将终端类型作为参数传递至服务端。
4.根据权利要求1所述的基于JWT认证应用实现单终端登录限制的方法,其特征在于,所述步骤S2包括:服务端获取账号凭据,查询数据库用户信息进行匹配校验,匹配错误则直接返回响应,向客户端提示错误。
5.根据权利要求1所述的基于JWT认证应用实现单终端登录限制的方法,其特征在于,所述步骤S4包括:
步骤S4.1:维护用户Token白名单,用于记录当前所有用户在各终端下的有效会话记录;
步骤S4.2:维护用户会话白名单,用于记录当前所有的有效会话记录;
步骤S4.3:维护用户会话黑名单,用于记录过去预设时间内的无效会话记录。
6.根据权利要求1所述的基于JWT认证应用实现单终端登录限制的方法,其特征在于,所述步骤S7包括:
步骤S7.1:在所有请求入口处对请求进行拦截并解析,获取用户会话标识SID;
步骤S7.2:根据用户会话标识SID判断是否在用户会话白名单缓存中,当不存在时则当前会话已失效,需要使客户端登出下线,同时根据用户会话标识SID在用户会话黑名单中查找详细登出原因,终止请求流程,将响应状态设置为401错误,同时返回具体登出信息。
7.根据权利要求1所述的基于JWT认证应用实现单终端登录限制的方法,其特征在于,所述步骤S8包括:客户端在接收到401错误响应时,向用户展示强制下线详情提示,确认下线信息后,客户端跳转至登录页面。
8.一种基于JWT认证应用实现单终端登录限制的***,其特征在于,包括:
模块M1:客户端获取当前终端类型,发起登录请求;
模块M2:服务端解析登录请求,获取终端类型,进行用户认证;
模块M3:服务端用户认证成功后生成认证凭据JWT Token;
模块M4:服务端根据终端类型及认证凭据维护用户会话名单;
模块M5:服务端响应登录请求,客户端保留认证凭据;
模块M6:客户端携带认证凭据发起业务请求;
模块M7:服务端根据用户会话名单拦截校验所有请求,会话失效则响应下线信息;
模块M8:客户端接收下线信息,进行强制下线处理。
9.根据权利要求8所述的基于JWT认证应用实现单终端登录限制的***,其特征在于,所述终端类型包括:移动应用终端类型、网页应用终端类型或自定义类型;
所述模块M1包括:客户端通过使用账号凭据向服务端发起登录请求,同时将终端类型作为参数传递至服务端;
所述模块M2包括:服务端获取账号凭据,查询数据库用户信息进行匹配校验,匹配错误则直接返回响应,向客户端提示错误。
10.根据权利要求8所述的基于JWT认证应用实现单终端登录限制的***,其特征在于,所述模块M4包括:
模块M4.1:维护用户Token白名单,用于记录当前所有用户在各终端下的有效会话记录;
模块M4.2:维护用户会话白名单,用于记录当前所有的有效会话记录;
模块M4.3:维护用户会话黑名单,用于记录过去预设时间内的无效会话记录。
所述模块M7包括:
模块M7.1:在所有请求入口处对请求进行拦截并解析,获取用户会话标识SID;
模块M7.2:根据用户会话标识SID判断是否在用户会话白名单缓存中,当不存在时则当前会话已失效,需要使客户端登出下线,同时根据用户会话标识SID在用户会话黑名单中查找详细登出原因,终止请求流程,将响应状态设置为401错误,同时返回具体登出信息;
所述模块M8包括:客户端在接收到401错误响应时,向用户展示强制下线详情提示,确认下线信息后,客户端跳转至登录页面。
CN202110302234.1A 2021-03-10 2021-03-22 基于jwt认证应用实现单终端登录限制的方法及*** Active CN112861092B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110262083 2021-03-10
CN2021102620831 2021-03-10

Publications (2)

Publication Number Publication Date
CN112861092A true CN112861092A (zh) 2021-05-28
CN112861092B CN112861092B (zh) 2023-05-16

Family

ID=75991834

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110302234.1A Active CN112861092B (zh) 2021-03-10 2021-03-22 基于jwt认证应用实现单终端登录限制的方法及***

Country Status (1)

Country Link
CN (1) CN112861092B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117155993A (zh) * 2023-10-27 2023-12-01 深圳品阔信息技术有限公司 在线状态计算方法、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110276197A (zh) * 2019-06-25 2019-09-24 四川长虹电器股份有限公司 基于共享黑名单撤销jwt令牌实时生效的方法
CN110351265A (zh) * 2019-07-02 2019-10-18 创新奇智(重庆)科技有限公司 一种基于jwt的认证鉴权方法、计算机可读介质及***
CN110933092A (zh) * 2019-12-03 2020-03-27 银清科技有限公司 一种基于jwt的单点登录实现方法及装置
CN112035822A (zh) * 2020-08-25 2020-12-04 北京锐安科技有限公司 多应用单点登录方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110276197A (zh) * 2019-06-25 2019-09-24 四川长虹电器股份有限公司 基于共享黑名单撤销jwt令牌实时生效的方法
CN110351265A (zh) * 2019-07-02 2019-10-18 创新奇智(重庆)科技有限公司 一种基于jwt的认证鉴权方法、计算机可读介质及***
CN110933092A (zh) * 2019-12-03 2020-03-27 银清科技有限公司 一种基于jwt的单点登录实现方法及装置
CN112035822A (zh) * 2020-08-25 2020-12-04 北京锐安科技有限公司 多应用单点登录方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
N. WILLIAMS等: "Accept-Auth HTTP Header for 3xx/401 Negotiation, and Redirect Authentication Scheme draft-williams-http-accept-auth-and-redirect-02", 《IETF 》 *
P. HUNT等: "Security Event Token (SET) draft-ietf-secevent-token-02", 《IETF 》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117155993A (zh) * 2023-10-27 2023-12-01 深圳品阔信息技术有限公司 在线状态计算方法、设备和介质
CN117155993B (zh) * 2023-10-27 2024-01-26 深圳品阔信息技术有限公司 在线状态计算方法、设备和介质

Also Published As

Publication number Publication date
CN112861092B (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
WO2021003751A1 (zh) 一种单账号多身份登录方法、装置、服务器及存储介质
US20170289134A1 (en) Methods and apparatus for assessing authentication risk and implementing single sign on (sso) using a distributed consensus database
CN109684799A (zh) 账户登录方法、登录装置、账户登录设备及存储介质
US9853960B2 (en) Peer applications trust center
US8909705B2 (en) Method and system for use in providing network services interchange
US20100077467A1 (en) Authentication service for seamless application operation
CN112838951B (zh) 一种终端设备的运维方法、装置、***及存储介质
CN112968963B (zh) 基于WebSocket进行用户强制实时下线的方法
KR20180096457A (ko) 인증 관리 방법 및 시스템
WO2023093500A1 (zh) 一种访问验证方法及装置
CN110601832A (zh) 一种数据访问方法及装置
US12010194B2 (en) Scalable server-based web scripting with user input
CN108234483B (zh) 用户登录续约方法、装置、终端及存储介质
CN114301678B (zh) 一种数据访问方法及装置、电子设备、存储介质
CN106789987B (zh) 移动终端单点登录多业务互联app的方法及***
CN112861092B (zh) 基于jwt认证应用实现单终端登录限制的方法及***
US11075922B2 (en) Decentralized method of tracking user login status
CN113852631A (zh) 一种确定访问令牌的方法及装置
CN115296877B (zh) 一种jwt存储令牌失效与续期的方法
CN105681291A (zh) 一种实现多客户端统一认证方法及***
KR20190067138A (ko) 인증 관리 방법 및 시스템
CN114006735B (zh) 一种数据保护方法、装置、计算机设备和存储介质
CN108449367B (zh) 管理用户登录安全性的方法、装置、电子设备及可读介质
CN103621039A (zh) 用于在计算机网络中访问服务器的服务器、***、方法、计算机程序和计算机程序产品
US11044251B2 (en) Method and system for authentication via audio transmission

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant