CN115102782A - 客户端的认证方法及装置、存储介质、计算机设备 - Google Patents
客户端的认证方法及装置、存储介质、计算机设备 Download PDFInfo
- Publication number
- CN115102782A CN115102782A CN202210846194.1A CN202210846194A CN115102782A CN 115102782 A CN115102782 A CN 115102782A CN 202210846194 A CN202210846194 A CN 202210846194A CN 115102782 A CN115102782 A CN 115102782A
- Authority
- CN
- China
- Prior art keywords
- token
- authentication
- authorization code
- client
- request
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000013475 authorization Methods 0.000 claims abstract description 151
- 238000004891 communication Methods 0.000 claims description 34
- 230000004044 response Effects 0.000 abstract description 10
- 238000012795 verification Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000000593 degrading effect Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011022 operating instruction Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
Abstract
本申请公开了一种客户端的认证方法及装置、存储介质、计算机设备,涉及互联网领域,主要目的在于改善现有基于一方存储的认证方式,当存储区域不可用时直接默认认证通过,极易导致安全问题;以及基于多方存储的方式,极易导致响应时间增加以及存储数据不一致的情况,进而导致令牌认证失败的问题。包括:接收用户的访问请求,根据缓存区的实时状态生成并存储授权码,以及发送授权码到客户端;接收客户端发送的换取令牌请求,换取令牌请求携带授权码,根据授权码生成并存储令牌,以及发送令牌到所述客户端;接收客户端发送的认证请求,认证请求携带待认证的目标令牌,根据目标令牌调取已存储的令牌,并基于已存储的令牌对目标令牌进行认证。
Description
技术领域
本申请涉及互联网技术领域,特别是涉及一种客户端的认证方法及装置、存储介质、计算机设备。
背景技术
随着互联网行业的飞速发展,为了能给用户带来更安全和流畅的体验,越来越多网站的登录服务开始遵循OAuth2.0协议,虽然不同公司都有各自的实现方式,但是基本的验证和授权流程是一致的,即用户访问客户端--客户端重定向跳转到认证服务器--用户向服务器授权--认证服务器重定向跳转到客户端,同时附加授权码--客户端利用授权码向认证服务器请求换取令牌--认证服务器向客户端颁发令牌--认证服务器验证客户端的令牌并返回验证结果。但随着用户量和接入认证系统的项目持续增长,导致接口的压力越来越大,一旦出现接口响应延迟或者服务不可用的情况,将直接导致所有需要认证的业务无法继续,进而影响用户的使用。
目前,主要有以下两种方案以解决上述问题,方案1,生成令牌时将令牌存入缓存或者数据库,验证令牌时如果缓存或者数据库服务不可用时,自动降级为默认校验通过;方案2,生成令牌时将令牌在缓存和数据库各存储一份,验证令牌时如果缓存服务不可用,则自动降级去数据库中验证。
然而,针对方案1,由于降级后是不对令牌进行校验默认校验通过的,极易造成严重的安全问题;针对方案2,由于额外增加一种存储方式,极易造成接口响应时间的增加,并且还会出现缓存和数据库中数据不一致的问题,进而导致令牌验证失败,影响用户体验感。基于此,亟需一种客户端的认证方法以解决上述问题。
发明内容
有鉴于此,本申请提供一种客户端的认证方法及装置、存储介质、计算机设备,主要目的在于改善现有基于一方存储的认证方式,当存储区域不可用时直接默认认证通过,极易导致安全问题;以及基于多方存储的方式,极易导致响应时间增加以及存储数据不一致的情况,进而导致令牌认证失败的问题。
依据本申请第一个方面,提供了一种客户端的认证方法,包括:
接收用户的访问请求,根据缓存区的实时状态生成并存储授权码,以及发送所述授权码到客户端;
接收所述客户端发送的换取令牌请求,所述换取令牌请求携带所述授权码,根据所述授权码生成并存储令牌,以及发送所述令牌到所述客户端;
接收所述客户端发送的认证请求,所述认证请求携带待认证的目标令牌,并且是基于所述客户端认证失败后发送的,根据所述目标令牌调取已存储的令牌,并基于已存储的令牌对所述目标令牌进行认证。
优选的,所述方法还包括:
配置缓存区以及存储数据库,以存储所述授权码以及所述令牌。
优选的,所述根据缓存区的实时状态生成并存储授权码,具体包括:
获取所述缓存区的实时状态;
若所述缓存区的实时状态为可用状态,则生成第一授权码,并将所述第一授权码存储于所述缓存区,所述第一授权码携带缓存区标识;
若所述缓存区的实时状态为不可用状态,则生成第二授权码,并将所述第二授权码存储于所述存储数据库,所述第二授权码携带存储数据库标识。
优选的,根据所述授权码生成并存储令牌,具体包括:
若所述授权码携带所述缓存区标识,则生成第一令牌,并将所述第一令牌存储于所述缓存区,所述第一令牌携带所述缓存区标识;
若所述授权码携带所述存储数据库标识,则生成第二令牌,并将所述第二令牌存储于所述存储数据库,所述第二令牌携带所述存储数据库标识。
优选的,所述根据所述目标令牌调取已存储的令牌,并基于已存储的令牌对所述目标令牌进行认证,具体包括:
若所述目标令牌携带所述缓存区标识,则遍历存储于所述缓存区的全量令牌,获取与所述目标令牌相匹配的已存储令牌,并基于所述已存储令牌对所述目标令牌进行认证;
若所述目标令牌携带所述存储数据库标识,则遍历存储于所述存储数据库的全量令牌,获取与所述目标令牌相匹配的已存储令牌,并基于所述已存储令牌对所述目标令牌进行认证。
依据本申请第二个方面,提供了另一种客户端的认证方法,包括:
接收用户的访问请求,发送获取授权码的请求到认证服务端,并接收所述认证服务端返回的授权码;
发送换取令牌的请求到所述认证服务端,所述换取令牌的请求携带所述授权码,以及接收并存储所述认证服务端返回的令牌;
对待认证的目标令牌进行本地认证;
若本地认证失败,则发送认证请求到所述认证服务端,以使得所述认证服务端基于所述认证服务端已存储的令牌对所述目标令牌进行认证,所述认证请求携带所述待认证的目标令牌。
优选的,所述方法还包括:
配置缓存区,以存储所述认证服务端返回的令牌。
依据本申请第三个方面,提供了一种客户端的认证装置,包括:
第一生成模块,用于接收用户的访问请求,根据缓存区的实时状态生成并存储授权码,以及发送所述授权码到客户端;
第二生成模块,用于接收所述客户端发送的换取令牌请求,所述换取令牌请求携带所述授权码,根据所述授权码生成并存储令牌,以及发送所述令牌到所述客户端;
第一认证模块,用于接收所述客户端发送的认证请求,所述认证请求携带待认证的目标令牌,并且是基于所述客户端认证失败后发送的,根据所述目标令牌调取已存储的令牌,并基于已存储的令牌对所述目标令牌进行认证。
优选的,所述装置还包括:
配置模块,用于配置缓存区以及存储数据库,以存储所述授权码以及所述令牌。
优选的,所述第一生成模块,具体包括:
获取单元,用于获取所述缓存区的实时状态;
生成单元,用于若所述缓存区的实时状态为可用状态,则生成第一授权码,并将所述第一授权码存储于所述缓存区,所述第一授权码携带缓存区标识;
所述生成单元,还用于若所述缓存区的实时状态为不可用状态,则生成第二授权码,并将所述第二授权码存储于所述存储数据库,所述第二授权码携带存储数据库标识。
优选的,所述第二生成模块,具体用于:
若所述授权码携带所述缓存区标识,则生成第一令牌,并将所述第一令牌存储于所述缓存区,所述第一令牌携带所述缓存区标识;
若所述授权码携带所述存储数据库标识,则生成第二令牌,并将所述第二令牌存储于所述存储数据库,所述第二令牌携带所述存储数据库标识。
优选的,所述第一认证模块,具体用于:
若所述目标令牌携带所述缓存区标识,则遍历存储于所述缓存区的全量令牌,获取与所述目标令牌相匹配的已存储令牌,并基于所述已存储令牌对所述目标令牌进行认证;
若所述目标令牌携带所述存储数据库标识,则遍历存储于所述存储数据库的全量令牌,获取与所述目标令牌相匹配的已存储令牌,并基于所述已存储令牌对所述目标令牌进行认证。
依据本申请第四个方面,提供了另一种客户端的认证装置,包括:
第一请求模块,用于接收用户的访问请求,发送获取授权码的请求到认证服务端,并接收所述认证服务端返回的授权码;
第二请求模块,用于发送换取令牌的请求到所述认证服务端,所述换取令牌的请求携带所述授权码,以及接收并存储所述认证服务端返回的令牌;
第二认证模块,用于对待认证的目标令牌进行本地认证;
第三请求模块,用于若本地认证失败,则发送认证请求到所述认证服务端,以使得所述认证服务端基于所述认证服务端已存储的令牌对所述目标令牌进行认证,所述认证请求携带所述待认证的目标令牌。
优选的,所述装置还包括:
所述配置模块,还用于配置缓存区,以存储所述认证服务端返回的令牌。
根据本申请的第五个方面,提供了一种存储介质,所述存储介质中存储有至少一条可执行指令,所述可执行指令使处理器执行如上述客户端的认证方法对应的操作。
根据本申请的第六个方面,提供了一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一条可执行指令,所述可执行指令使所述处理器执行上述客户端的认证方法对应的操作。
根据本申请的第七个方面,提供了另一种存储介质,所述存储介质中存储有至少一条可执行指令,所述可执行指令使处理器执行如上述客户端的认证方法对应的操作。
根据本申请的第八个方面,提供了另一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一条可执行指令,所述可执行指令使所述处理器执行上述客户端的认证方法对应的操作。
借由上述技术方案,本申请实施例提供的技术方案至少具有下列优点:
本申请提供了一种客户端的认证方法及装置、存储介质、计算机设备,首先接收用户的访问请求,根据缓存区的实时状态生成并存储授权码,以及发送所述授权码到客户端;其次接收所述客户端发送的换取令牌请求,所述换取令牌请求携带所述授权码,根据所述授权码生成并存储令牌,以及发送所述令牌到所述客户端;最后接收所述客户端发送的认证请求,所述认证请求携带待认证的目标令牌,并且是基于所述客户端认证失败后发送的,根据所述目标令牌调取已存储的令牌,并基于已存储的令牌对所述目标令牌进行认证。与现有技术相比,本申请实施例通过在缓存区可用时将令牌存储于缓存区,在缓存区不可用时将令牌存储于数据库,并在客户端认证令牌失败时,再根据待认证令牌的标识到对应的存储区域中查询相匹配的令牌,以对待认证令牌进行认证,既保证了所有情况下均需认证令牌,以避免安全问题,又避免了频繁的请求认证服务端进行令牌认证的情况,缓解了令牌接口的压力,同时又避免了由于响应时间增加以及存储数据不一致导致令牌认证失败的情况。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本申请实施例提供的一种客户端的认证方法流程图;
图2示出了本申请实施例提供的OAuth2.0协议的认证和授权流程图;
图3示出了本申请实施例提供的授权码的生成流程图;
图4示出了本申请实施例提供的令牌的生成流程图;
图5示出了本申请实施例提供的令牌的认证流程图;
图6示出了本申请实施例提供的另一种客户端的认证方法流程图;
图7示出了本申请实施例提供的一种客户端的认证装置组成框图;
图8示出了本申请实施例提供的另一种客户端的认证装置组成框图;
图9示出了本申请实施例提供的一种计算机设备的结构示意图;
图10示出了本申请实施例提供的另一种计算机设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
基于此,在一个实施例中,如图1所示,提供了一种客户端的认证方法,可以应用于认证服务端侧,以该方法应用于服务器等计算机设备为例进行说明,其中,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,如智能医疗系统、数字医疗平台等。上述方法包括以下步骤:
101、接收用户的访问请求,根据缓存区的实时状态生成并存储授权码,以及发送授权码到客户端。
需要说明的是,现今绝大多数的网站登录服务均遵循OAuth2.0协议,具体的认证和授权流程如图2所示,客户端首先接收用户的访问请求;并重定向跳转到认证服务器;认证服务器接收用户的授权请求;并重定向跳转到客户端,同时附加授权码;客户端利用授权码向认证服务器请求换取令牌;认证服务器向客户端颁发令牌;认证服务器验证客户端的令牌并返回验证结果;进一步根据验证结果向资源服务器请求并接收资源服务器返回的资源数据。在上述验证及授权流程中,一旦出现接口响应延迟或者服务不可用的情况,将导致所有认证业务无法进行,从而影响用户的使用,为了解决上述问题,通常会采用存储令牌并自动降级的处理方式。现有的存储令牌并自动降级的处理方式主要集中在生成令牌时将令牌存入缓存或者数据库,自动降级验证令牌时直接默认校验通过以及生成令牌时将令牌在缓存和数据库各存储一份,自动降级验证令牌时去数据库中验证。然而,针对直接默认校验通过的自动降级验证令牌的方式,由于降级后是不对令牌进行校验默认校验通过的,极易造成严重的安全问题;针对在缓存和数据库各存储一份令牌的方式,由于额外增加一种存储方式,极易造成接口响应时间的增加,并且还会出现缓存和数据库中数据不一致的问题,进而导致令牌验证失败。
为了解决上述问题,本申请实施例中,可以使用缓存区以及存储数据库同时作为存储区域,在接收到用户的访问请求时,随机生成初始授权码,并根据缓存区的实时状态为初始授权码添加存储标识,生成带有存储标识的最终授权码,其中,存储标识用于识别授权码的存储位置具体是缓存区还是存储数据库,并根据缓存区的实时状态选择缓存区或存储数据库其一进行单一存储,同时将生成的授权码发送至客户端。通过基于缓存区实时状态的单一存储方式,既可以使得在降级验证时有据可依,又避免了多方存储可能出现的数据不一致的问题。
102、接收客户端发送的换取令牌请求,根据授权码生成并存储令牌,以及发送令牌到客户端。
其中,换取令牌请求携带授权码。本申请实施例中,接收到客户端发送的携带授权码的换取令牌请求后,生成令牌,并根据授权码携带的存储标识,为令牌添加同样的存储标识,并存储至相应的存储区域,进一步将令牌发送至客户端。
需要说明的是,令牌可以是由信息组成的一串字符,组成令牌的信息包括但不限于令牌的生成时间、有效时间、用户身份信息等。
103、接收客户端发送的认证请求,根据目标令牌调取已存储的令牌,并基于已存储的令牌对目标令牌进行认证。
其中,认证请求携带待认证的目标令牌,并且是基于客户端认证失败后发送的。本申请实施例中,在接收到客户端发送的认证请求后,根据认证请求中携带的目标令牌的存储标识,到相应的存储区域调取相匹配的令牌,并基于调取到的令牌,对目标令牌进行认证。
与现有技术相比,本申请实施例通过在缓存区可用时将令牌存储于缓存区,在缓存区不可用时将令牌存储于数据库,并在客户端认证令牌失败时,再根据待认证令牌的标识到对应的存储区域中查询相匹配的令牌,以对待认证令牌进行认证,既保证了所有情况下均需认证令牌,以避免安全问题,又避免了频繁的请求认证服务端进行令牌认证的情况,缓解了令牌接口的压力,同时又避免了由于响应时间增加以及存储数据不一致导致令牌认证失败的情况。
为了进一步说明以及限定,本申请实施例中,实施例方法还包括:配置缓存区以及存储数据库,以存储授权码以及令牌。
需要说明的是,缓存区可以作为优先缓存区域,进行授权码以及令牌的存储,当缓存区不可用或存入失败时,再自动降级将授权码以及令牌存入存储数据库。另外,授权码以及令牌应存入相同的存储区域,即授权码已经存储于存储数据库,那么令牌也需存储于存储数据库。
为了进一步说明以及限定,本申请实施例中,根据缓存区的实时状态生成并存储授权码,具体包括:获取缓存区的实时状态;若缓存区的实时状态为可用状态,则生成第一授权码,并将第一授权码存储于缓存区;若缓存区的实时状态为不可用状态,则生成第二授权码,并将第二授权码存储于存储数据库。
其中,第一授权码携带缓存区标识,第二授权码携带存储数据库标识。具体的,如图3所示,在生成授权码时,首先效验客户端发送的访问请求中是否携带数据,即效验参数。再获取缓存区的实时状态,若缓存区的实时状态为可用状态,则生成携带缓存区标识的第一授权码,并将其存储至缓存区;若缓存区的实时状态为不可用状态,则生成携带存储数据库标识的第二授权码,并将其存储至存储数据库。
需要说明的是,在为授权码添加存储标识时,可以分别设置缓存区标识以及存储数据库标识,并分别添加;也可以只设置缓存区标识或存储数据库标识其中之一,基于此,携带标识的授权码即为存储于缓存区或存储数据库,而不携带标识的授权码即为存储于剩余的另一个存储区域,本申请实施例不做具体限定。
为了进一步说明以及限定,本申请实施例中,根据授权码生成并存储令牌,具体包括:若授权码携带缓存区标识,则生成第一令牌,并将第一令牌存储于缓存区;若授权码携带存储数据库标识,则生成第二令牌,并将第二令牌存储于存储数据库。
其中,第一令牌携带缓存区标识,第二令牌携带存储数据库标识。具体的,如图4所示,在生成令牌后,识别客户端发送的换取令牌请求中所携带的授权码所携带的存储区标识,若携带缓存区标识,则为令牌添加缓存区标识,生成携带缓存区标识的第一令牌,并将其存储至缓存区;若携带存储数据库标识,则为令牌添加储数据库标识,生成携带储数据库标识的第二令牌,并将其存储至储数据库。
需要说明的是,为令牌添加存储区标识时,同样可以采用上述为授权码添加存储区标识所使用的方式,上述已经说明,本申请实施例在此不再赘述。另外,为了保证令牌信息不被泄露,还可以将生成的令牌进行加密处理后,再进行存储以及发送,可以有效地保证令牌的安全。
为了进一步说明以及限定,本申请实施例中,根据目标令牌调取已存储的令牌,并基于已存储的令牌对目标令牌进行认证,具体包括:若目标令牌携带缓存区标识,则遍历存储于缓存区的全量令牌,获取与目标令牌相匹配的已存储令牌,并基于已存储令牌对目标令牌进行认证;若目标令牌携带存储数据库标识,则遍历存储于存储数据库的全量令牌,获取与目标令牌相匹配的已存储令牌,并基于已存储令牌对目标令牌进行认证。
具体的,如图5所述,若客户端认证令牌失败,则发送认证请求到作为当前执行主体的认证服务端,以请求认证服务端对目标令牌进行认证。首先识别目标令牌所携带的存储区标识,若携带缓存区标识,则遍历存储于缓存区的全量令牌,获取与目标令牌相匹配的已存储令牌,并基于已存储令牌对目标令牌进行认证;若携带存储数据库标识,则遍历存储于存储数据库的全量令牌,获取与目标令牌相匹配的已存储令牌,并基于已存储令牌对目标令牌进行认证。进一步返回认证结果。
需要说明的是,在对令牌进行认证时,首先认证有效时间,若已过期,则返回令牌已失效;若仍处于有效期,则进一步认证身份信息等内容;若未获取到与目标令牌相匹配的已存储的令牌,则返回认证失败。
本申请提供了一种客户端的认证方法,首先接收用户的访问请求,根据缓存区的实时状态生成并存储授权码,以及发送所述授权码到客户端;其次接收所述客户端发送的换取令牌请求,所述换取令牌请求携带所述授权码,根据所述授权码生成并存储令牌,以及发送所述令牌到所述客户端;最后接收所述客户端发送的认证请求,所述认证请求携带待认证的目标令牌,并且是基于所述客户端认证失败后发送的,根据所述目标令牌调取已存储的令牌,并基于已存储的令牌对所述目标令牌进行认证。与现有技术相比,本申请实施例通过在缓存区可用时将令牌存储于缓存区,在缓存区不可用时将令牌存储于数据库,并在客户端认证令牌失败时,再根据待认证令牌的标识到对应的存储区域中查询相匹配的令牌,以对待认证令牌进行认证,既保证了所有情况下均需认证令牌,以避免安全问题,又避免了频繁的请求认证服务端进行令牌认证的情况,缓解了令牌接口的压力,同时又避免了由于响应时间增加以及存储数据不一致导致令牌认证失败的情况。
上述实施例内容为在认证服务端侧描述的客户端的认证过程,进一步的,为了完整说明本实施例的实施方式,本申请实施例还提供了另一种客户端的认证方法,可应用于客户端侧,如图6所示,该方法包括:
201、接收用户的访问请求,发送获取授权码的请求到认证服务端,并接收认证服务端返回的授权码。
202、发送换取令牌的请求到认证服务端,以及接收并存储认证服务端返回的令牌。
其中,换取令牌的请求携带授权码。
203、对待认证的目标令牌进行本地认证。
204、若本地认证失败,则发送认证请求到认证服务端。
以使得认证服务端基于认证服务端已存储的令牌对目标令牌进行认证,其中,认证请求携带待认证的目标令牌。
本申请实施例中,首先由客户端对缓存于本地的令牌进行认证,当本地认证失败后,再请求认证服务端对令牌进一步进行认证,避免了频繁的请求认证服务端进行令牌认证的情况,缓解了令牌接口的压力。
需要说明的是,为了保证令牌信息不被泄露,还可以通过将生成的令牌进行加密处理,在本地认证令牌时,基于本地动态链接库的解密包对令牌进行解密后再认证。
优选的,本申请实施例中,实施例方法还包括:配置缓存区,以存储所述认证服务端返回的令牌。从而避免频繁的请求认证服务端进行令牌认证,从而降低了令牌接口的压力,提高了业务效率。
本申请提供了一种客户端的认证方法,首先接收用户的访问请求,发送获取授权码的请求到认证服务端,并接收所述认证服务端返回的授权码;其次发送换取令牌的请求到所述认证服务端,所述换取令牌的请求携带所述授权码,以及接收并存储所述认证服务端返回的令牌;再次对待认证的目标令牌进行本地认证;最后若本地认证失败,则发送认证请求到所述认证服务端,以使得所述认证服务端基于所述认证服务端已存储的令牌对所述目标令牌进行认证,所述认证请求携带所述待认证的目标令牌。与现有技术相比,本申请实施例通过在客户端配置缓存区,当本地认证失败后,再请求认证服务端对令牌进一步进行认证,避免了频繁的请求认证服务端进行令牌认证的情况,缓解了令牌接口的压力。
进一步的,作为对上述图1所示方法的实现,本申请实施例提供了一种客户端的认证装置,如图7所示,该装置包括:
第一生成模块31,第二生成模块32,第一认证模块33。
第一生成模块31,用于接收用户的访问请求,根据缓存区的实时状态生成并存储授权码,以及发送所述授权码到客户端;
第二生成模块32,用于接收所述客户端发送的换取令牌请求,所述换取令牌请求携带所述授权码,根据所述授权码生成并存储令牌,以及发送所述令牌到所述客户端;
第一认证模块33,用于接收所述客户端发送的认证请求,所述认证请求携带待认证的目标令牌,并且是基于所述客户端认证失败后发送的,根据所述目标令牌调取已存储的令牌,并基于已存储的令牌对所述目标令牌进行认证。
在具体的应用场景中,所述装置还包括:
配置模块,用于配置缓存区以及存储数据库,以存储所述授权码以及所述令牌。
在具体的应用场景中,所述第一生成模块,具体包括:
获取单元,用于获取所述缓存区的实时状态;
生成单元,用于若所述缓存区的实时状态为可用状态,则生成第一授权码,并将所述第一授权码存储于所述缓存区,所述第一授权码携带缓存区标识;
所述生成单元,还用于若所述缓存区的实时状态为不可用状态,则生成第二授权码,并将所述第二授权码存储于所述存储数据库,所述第二授权码携带存储数据库标识。
在具体的应用场景中,所述第二生成模块,具体用于:
若所述授权码携带所述缓存区标识,则生成第一令牌,并将所述第一令牌存储于所述缓存区,所述第一令牌携带所述缓存区标识;
若所述授权码携带所述存储数据库标识,则生成第二令牌,并将所述第二令牌存储于所述存储数据库,所述第二令牌携带所述存储数据库标识。
在具体的应用场景中,所述第一认证模块,具体用于:
若所述目标令牌携带所述缓存区标识,则遍历存储于所述缓存区的全量令牌,获取与所述目标令牌相匹配的已存储令牌,并基于所述已存储令牌对所述目标令牌进行认证;
若所述目标令牌携带所述存储数据库标识,则遍历存储于所述存储数据库的全量令牌,获取与所述目标令牌相匹配的已存储令牌,并基于所述已存储令牌对所述目标令牌进行认证。
进一步的,作为对上述图6所示方法的实现,本申请实施例提供了另一种客户端的认证装置,如图8所示,该装置包括:
第一请求模块41,第二请求模块42,第二认证模块43,第三请求模块44。
第一请求模块41,用于接收用户的访问请求,发送获取授权码的请求到认证服务端,并接收所述认证服务端返回的授权码;
第二请求模块42,用于发送换取令牌的请求到所述认证服务端,所述换取令牌的请求携带所述授权码,以及接收并存储所述认证服务端返回的令牌;
第二认证模块43,用于对待认证的目标令牌进行本地认证;
第三请求模块44,用于若本地认证失败,则发送认证请求到所述认证服务端,以使得所述认证服务端基于所述认证服务端已存储的令牌对所述目标令牌进行认证,所述认证请求携带所述待认证的目标令牌。
在具体的应用场景中,所述装置还包括:
所述配置模块,还用于配置缓存区,以存储所述认证服务端返回的令牌。
本申请提供了一种客户端的认证装置,首先接收用户的访问请求,根据缓存区的实时状态生成并存储授权码,以及发送所述授权码到客户端;其次接收所述客户端发送的换取令牌请求,所述换取令牌请求携带所述授权码,根据所述授权码生成并存储令牌,以及发送所述令牌到所述客户端;最后接收所述客户端发送的认证请求,所述认证请求携带待认证的目标令牌,并且是基于所述客户端认证失败后发送的,根据所述目标令牌调取已存储的令牌,并基于已存储的令牌对所述目标令牌进行认证。与现有技术相比,本申请实施例通过在缓存区可用时将令牌存储于缓存区,在缓存区不可用时将令牌存储于数据库,并在客户端认证令牌失败时,再根据待认证令牌的标识到对应的存储区域中查询相匹配的令牌,以对待认证令牌进行认证,既保证了所有情况下均需认证令牌,以避免安全问题,又避免了频繁的请求认证服务端进行令牌认证的情况,缓解了令牌接口的压力,同时又避免了由于响应时间增加以及存储数据不一致导致令牌认证失败的情况。
根据本申请一个实施例提供了一种存储介质,所述存储介质存储有至少一条可执行指令,该计算机可执行指令可执行上述任意方法实施例中的客户端的认证方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
图9示出了根据本申请一个实施例提供的一种计算机设备的结构示意图,本申请具体实施例并不对计算机设备的具体实现做限定。
如图9所示,该计算机设备可以包括:处理器(processor)502、通信接口(Communications Interface)504、存储器(memory)506、以及通信总线508。
其中:处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
通信接口504,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器502,用于执行程序510,具体可以执行上述客户端的认证方法实施例中的相关步骤。
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
处理器502可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。计算机设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器506,用于存放程序510。存储器506可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序510具体可以用于使得处理器502执行以下操作:
接收用户的访问请求,根据缓存区的实时状态生成并存储授权码,以及发送所述授权码到客户端;
接收所述客户端发送的换取令牌请求,所述换取令牌请求携带所述授权码,根据所述授权码生成并存储令牌,以及发送所述令牌到所述客户端;
接收所述客户端发送的认证请求,所述认证请求携带待认证的目标令牌,并且是基于所述客户端认证失败后发送的,根据所述目标令牌调取已存储的令牌,并基于已存储的令牌对所述目标令牌进行认证。
根据本申请另一个实施例提供了另一种存储介质,所述存储介质存储有至少一条可执行指令,该计算机可执行指令可执行上述任意方法实施例中的客户端的认证方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
图10示出了根据本申请另一个实施例提供的另一种计算机设备的结构示意图,本申请具体实施例并不对计算机设备的具体实现做限定。
如图10所示,该计算机设备可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
其中:处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。
通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器602,用于执行程序610,具体可以执行上述客户端的认证方法实施例中的相关步骤。
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。计算机设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序610具体可以用于使得处理器502执行以下操作:
接收用户的访问请求,发送获取授权码的请求到认证服务端,并接收所述认证服务端返回的授权码;
发送换取令牌的请求到所述认证服务端,所述换取令牌的请求携带所述授权码,以及接收并存储所述认证服务端返回的令牌;
对待认证的目标令牌进行本地认证;
若本地认证失败,则发送认证请求到所述认证服务端,以使得所述认证服务端基于所述认证服务端已存储的令牌对所述目标令牌进行认证,所述认证请求携带所述待认证的目标令牌。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述客户端的认证的实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本申请的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本申请的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本申请的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本申请实施为记录在记录介质中的程序,这些程序包括用于实现根据本申请的方法的机器可读指令。因而,本申请还覆盖存储用于执行根据本申请的方法的程序的记录介质。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (13)
1.一种客户端的认证方法,其特征在于,包括:
接收用户的访问请求,根据缓存区的实时状态生成并存储授权码,以及发送所述授权码到客户端;
接收所述客户端发送的换取令牌请求,所述换取令牌请求携带所述授权码,根据所述授权码生成并存储令牌,以及发送所述令牌到所述客户端;
接收所述客户端发送的认证请求,所述认证请求携带待认证的目标令牌,并且是基于所述客户端认证失败后发送的,根据所述目标令牌调取已存储的令牌,并基于已存储的令牌对所述目标令牌进行认证。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
配置缓存区以及存储数据库,以存储所述授权码以及所述令牌。
3.根据权利要求2所述的方法,其特征在于,所述根据缓存区的实时状态生成并存储授权码,具体包括:
获取所述缓存区的实时状态;
若所述缓存区的实时状态为可用状态,则生成第一授权码,并将所述第一授权码存储于所述缓存区,所述第一授权码携带缓存区标识;
若所述缓存区的实时状态为不可用状态,则生成第二授权码,并将所述第二授权码存储于所述存储数据库,所述第二授权码携带存储数据库标识。
4.根据权利要求3所述的方法,其特征在于,所述根据所述授权码生成并存储令牌,具体包括:
若所述授权码携带所述缓存区标识,则生成第一令牌,并将所述第一令牌存储于所述缓存区,所述第一令牌携带所述缓存区标识;
若所述授权码携带所述存储数据库标识,则生成第二令牌,并将所述第二令牌存储于所述存储数据库,所述第二令牌携带所述存储数据库标识。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标令牌调取已存储的令牌,并基于已存储的令牌对所述目标令牌进行认证,具体包括:
若所述目标令牌携带所述缓存区标识,则遍历存储于所述缓存区的全量令牌,获取与所述目标令牌相匹配的已存储令牌,并基于所述已存储令牌对所述目标令牌进行认证;
若所述目标令牌携带所述存储数据库标识,则遍历存储于所述存储数据库的全量令牌,获取与所述目标令牌相匹配的已存储令牌,并基于所述已存储令牌对所述目标令牌进行认证。
6.一种客户端的认证方法,其特征在于,包括:
接收用户的访问请求,发送获取授权码的请求到认证服务端,并接收所述认证服务端返回的授权码;
发送换取令牌的请求到所述认证服务端,所述换取令牌的请求携带所述授权码,以及接收并存储所述认证服务端返回的令牌;
对待认证的目标令牌进行本地认证;
若本地认证失败,则发送认证请求到所述认证服务端,以使得所述认证服务端基于所述认证服务端已存储的令牌对所述目标令牌进行认证,所述认证请求携带所述待认证的目标令牌。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
配置缓存区,以存储所述认证服务端返回的令牌。
8.一种客户端的认证装置,其特征在于,包括:
第一生成模块,用于接收用户的访问请求,根据缓存区的实时状态生成并存储授权码,以及发送所述授权码到客户端;
第二生成模块,用于接收所述客户端发送的换取令牌请求,所述换取令牌请求携带所述授权码,根据所述授权码生成并存储令牌,以及发送所述令牌到所述客户端;
第一认证模块,用于接收所述客户端发送的认证请求,所述认证请求携带待认证的目标令牌,并且是基于所述客户端认证失败后发送的,根据所述目标令牌调取已存储的令牌,并基于已存储的令牌对所述目标令牌进行认证。
9.一种客户端的认证装置,其特征在于,包括:
第一请求模块,用于接收用户的访问请求,发送获取授权码的请求到认证服务端,并接收所述认证服务端返回的授权码;
第二请求模块,用于发送换取令牌的请求到所述认证服务端,所述换取令牌的请求携带所述授权码,以及接收并存储所述认证服务端返回的令牌;
第二认证模块,用于对待认证的目标令牌进行本地认证;
第三请求模块,用于若本地认证失败,则发送认证请求到所述认证服务端,以使得所述认证服务端基于所述认证服务端已存储的令牌对所述目标令牌进行认证,所述认证请求携带所述待认证的目标令牌。
10.一种存储介质,所述存储介质中存储有至少一条可执行指令,其特征在于,所述可执行指令使处理器执行如权利要求1-5中任一项所述的客户端的认证方法对应的操作。
11.一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一条可执行指令,其特征在于,所述可执行指令使所述处理器执行如权利要求1-5中任一项所述的客户端的认证方法对应的操作。
12.一种存储介质,所述存储介质中存储有至少一条可执行指令,其特征在于,所述可执行指令使处理器执行如权利要求6-7中任一项所述的客户端的认证方法对应的操作。
13.一种计算机设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一条可执行指令,其特征在于,所述可执行指令使所述处理器执行如权利要求6-7中任一项所述的客户端的认证方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210846194.1A CN115102782B (zh) | 2022-07-19 | 2022-07-19 | 客户端的认证方法及装置、存储介质、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210846194.1A CN115102782B (zh) | 2022-07-19 | 2022-07-19 | 客户端的认证方法及装置、存储介质、计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115102782A true CN115102782A (zh) | 2022-09-23 |
CN115102782B CN115102782B (zh) | 2024-04-09 |
Family
ID=83299187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210846194.1A Active CN115102782B (zh) | 2022-07-19 | 2022-07-19 | 客户端的认证方法及装置、存储介质、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115102782B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105359491A (zh) * | 2013-06-14 | 2016-02-24 | 微软技术许可有限责任公司 | 云环境中的用户认证 |
KR101878314B1 (ko) * | 2018-02-12 | 2018-07-16 | (주)케이사인 | 사물 인터넷 네트워크의 사용자 인증 시스템 및 방법 |
CN111475795A (zh) * | 2020-04-12 | 2020-07-31 | 广州通达汽车电气股份有限公司 | 一种面向多应用进行统一认证授权的方法及装置 |
CN113312653A (zh) * | 2021-06-25 | 2021-08-27 | 中国农业银行股份有限公司 | 开放平台认证授权方法、装置及存储介质 |
CN113553572A (zh) * | 2021-07-02 | 2021-10-26 | 深圳追一科技有限公司 | 资源信息获取方法、装置、计算机设备和存储介质 |
CN113923020A (zh) * | 2021-10-09 | 2022-01-11 | 天翼物联科技有限公司 | SaaS多租户架构的微服务鉴权方法、装置、及设备 |
CN114079569A (zh) * | 2020-07-31 | 2022-02-22 | 中移(苏州)软件技术有限公司 | 一种开放授权方法及装置、设备、存储介质 |
-
2022
- 2022-07-19 CN CN202210846194.1A patent/CN115102782B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105359491A (zh) * | 2013-06-14 | 2016-02-24 | 微软技术许可有限责任公司 | 云环境中的用户认证 |
KR101878314B1 (ko) * | 2018-02-12 | 2018-07-16 | (주)케이사인 | 사물 인터넷 네트워크의 사용자 인증 시스템 및 방법 |
CN111475795A (zh) * | 2020-04-12 | 2020-07-31 | 广州通达汽车电气股份有限公司 | 一种面向多应用进行统一认证授权的方法及装置 |
CN114079569A (zh) * | 2020-07-31 | 2022-02-22 | 中移(苏州)软件技术有限公司 | 一种开放授权方法及装置、设备、存储介质 |
CN113312653A (zh) * | 2021-06-25 | 2021-08-27 | 中国农业银行股份有限公司 | 开放平台认证授权方法、装置及存储介质 |
CN113553572A (zh) * | 2021-07-02 | 2021-10-26 | 深圳追一科技有限公司 | 资源信息获取方法、装置、计算机设备和存储介质 |
CN113923020A (zh) * | 2021-10-09 | 2022-01-11 | 天翼物联科技有限公司 | SaaS多租户架构的微服务鉴权方法、装置、及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115102782B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106209749B (zh) | 单点登录方法及装置、相关设备和应用的处理方法及装置 | |
WO2017028804A1 (zh) | 一种Web实时通信平台鉴权接入方法及装置 | |
CN106375270B (zh) | 令牌生成并认证的方法及认证服务器 | |
CN109547458B (zh) | 登录验证方法、装置、计算机设备及存储介质 | |
US8832857B2 (en) | Unsecured asset detection via correlated authentication anomalies | |
CN112491776B (zh) | 安全认证方法及相关设备 | |
CN110069909B (zh) | 一种免密登录第三方系统的方法及装置 | |
CN109495486B (zh) | 一种基于JWT的单页Web应用集成CAS的方法 | |
CN111342964B (zh) | 单点登录方法、装置及系统 | |
CN112883357A (zh) | 无状态登录鉴权方法和装置 | |
CN112491890A (zh) | 一种访问方法及装置 | |
CN113761509B (zh) | iframe验证登录方法及装置 | |
US20190132304A1 (en) | Loopback verification of multi-factor authentication | |
CN113505353A (zh) | 一种认证方法、装置、设备和存储介质 | |
CN116647345A (zh) | 权限令牌的生成方法以及装置、存储介质、计算机设备 | |
CN116996305A (zh) | 一种多层次安全认证方法、系统、设备、存储介质及入口网关 | |
CN108600266B (zh) | 一种声明过滤认证方法及认证系统 | |
CN116484338A (zh) | 数据库访问方法及装置 | |
CN115102782B (zh) | 客户端的认证方法及装置、存储介质、计算机设备 | |
CN111817860B (zh) | 一种通信认证方法、装置、设备及存储介质 | |
CN114282240A (zh) | 跨域访问的控制方法及电子设备、存储介质 | |
CN112632491A (zh) | 一种实现多信息系统共用账号体系的方法 | |
CN112653676A (zh) | 一种跨认证系统的身份认证方法和设备 | |
CN113938323B (zh) | 基于jwt的防重放攻击方法、装置、设备以及存储介质 | |
CN114157420B (zh) | 一种令牌失效方法和装置 |
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 |