CN113065115B - 基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法 - Google Patents

基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法 Download PDF

Info

Publication number
CN113065115B
CN113065115B CN202110292815.1A CN202110292815A CN113065115B CN 113065115 B CN113065115 B CN 113065115B CN 202110292815 A CN202110292815 A CN 202110292815A CN 113065115 B CN113065115 B CN 113065115B
Authority
CN
China
Prior art keywords
login
token
applet
user
service
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.)
Active
Application number
CN202110292815.1A
Other languages
English (en)
Other versions
CN113065115A (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.)
Zhongruixin Digital Technology Co ltd
Original Assignee
Zhongruixin Digital 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 Zhongruixin Digital Technology Co ltd filed Critical Zhongruixin Digital Technology Co ltd
Priority to CN202110292815.1A priority Critical patent/CN113065115B/zh
Publication of CN113065115A publication Critical patent/CN113065115A/zh
Application granted granted Critical
Publication of CN113065115B publication Critical patent/CN113065115B/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
    • G06F21/33User authentication using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法,包括:开启微信小程序,判断是否处于用户登录状态;若否,开启预登录模式;接收用户操作,判断所述操作是否需要实名认证;若是,将手机号码作为判定是否调用微信的用户信息的唯一键值;若是,所述小程序根据业务后台返回的登录令牌访问业务后台并调用包含用户信息的业务接口采用本实施例提供的方案时小程序用户操作状态为无用户信息接口时,也需要通过预登录的形式,携带预登录令牌的方式访问,保护后台接口的访问权限;另外,利用oauth2.0的协议,自定义生成以手机号为唯一值的登录态进行登录,可以保证系统的安全性。

Description

基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权 方法
技术领域
本发明涉及安全网络的技术领域,具体涉及基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法。
背景技术
微信小程序为一些系统的第三方提供渠道,用户可以通过微信小程序自主选择产品或进行贷款申请,系统需要提供接口来获取由微信小程序传递的数据,故该类提供给微信小程序访问的接口必然要引入安全认证机制,从而保证接口不被非法滥用或不被某些居心叵测的人恶意调用。由微信系统提供给微信小程序访问的接口,被称为开放API。对于开放API的接口安全问题,现有解决方案一般为参数签名校验,但该方法不能复用现有系统中已经实现了用户权限机制。
另外,专利号为CN110210203A中描述通过专属用户的openld来获得access_token。因为openld是通过微信appld和appSecret唯一生成的键值。通过openld生成自定义登录态,会遇到同一个用户用不同手机号登录时生成的openld也会相同,此时登录就会出现同一个openld出现两个用户账号的情况;此外,该专利中生成自定义登录态时没有详细的描述怎么分配用户权限和用户授权认证;最后,在登录token过期问题上描述为:设定时长间隔阈值,根据时长间隔阈值,实时更新所述访问令牌过于模糊。在此基础上,专利号为CN110535851A中的技术方案在无网络隔离的情况下,用户可绕过网关直接请求api。
因此,亟需一种方法可以解决上述的安全性问题。
发明内容
本发明提供基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法,用以解决上述现有技术中仍存在的安全性的问题。
本发明提供基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法,该方法包括:
开启微信小程序,判断是否处于用户登录状态;
若否,开启预登录模式;所述预登录模式为:小程序根据用户唯一标识预登录获取预登录令牌,根据预登录令牌访问业务后台调用不包含用户信息的业务接口;
接收用户操作,判断所述操作是否需要实名认证;
若是,将手机号码作为判定是否调用微信的用户信息的唯一键值;
若是,所述小程序根据业务后台返回的登录令牌访问业务后台并调用包含用户信息的业务接口。
可选的,所述开启预登录模式,包括:
获取临时登录凭证;
根据所述临时登录凭证及小程序唯一标识和小程序密码向微信服务器发出请求;
所述微信服务器根据所述请求生成用户唯一标识和会话密钥,并发送至微信小程序;
所述小程序根据用户唯一标识预登录获取预登录令牌,根据预登录令牌访问业务后台调用不包含用户信息的业务接口。
可选的,所述小程序根据业务后台返回的登录令牌访问业务后台并调用包含用户信息的业务接口,包括:
小程序向业务后台调用登录接口;
业务后台向小程序返回登录令牌,并将登录令牌存储在本地;
用户根据所述登录令牌向业务后台发送业务接口请求;
所述业务后台对所述登录令牌进行验证,若验证通过,则调用包含用户信息的业务接口并返回给用户,若验证不通过,则返回错误指令。
可选的,所述小程序向业务后台调用登录接口之前,包括:
小程序向业务后台的认证中心发送登录授权请求;
所述认证中心根据所述请求生成登录令牌;
所述认证中心对用户信息进行查询,获取用户信息;
所述认证中心以所述登录令牌为键值,生成包含用户信息的jwt token;所述jwttoken基于redis存储;
所述认证中心将所述登录令牌返回至所述小程序,完成小程序登录授权。
可选的,所述业务后台向小程序返回登录令牌,包括:
所述小程序向网关发送基于Bearer token的请求;
网关层对所述小程序的登录令牌向认证中心进行验证;
若验证成功,基于作为键值的登录令牌,从redis中获取jwt token,完成jwttoken的验证;
业务后台向小程序返回登录令牌。
可选的,若验证成功,基于作为键值的登录令牌,从redis中获取jwt token,完成jwt token的验证之后,包括:
所述网关层将获取jwt token发送至若干个微服务中;
每个微服务对所述jwt token进行解析,获取当前登录用户的信息及相关权限。
可选的,所述网关层对所述小程序的登录令牌向认证中心进行验证中,若验证失败,则小程序主动向认证中心再次发送登录授权请求,更新登录令牌,完成登录令牌的重新授权。
可选的,所述获取用户信息之后,包括:
对所述用户信息采用MD5方式对信息进行加密;
相应的,所述认证中心以所述登录令牌为键值,生成包含用户信息的jwt token中,所述用户信息是经过加密后的信息。
可选的,所述将手机号码作为判定是否调用微信的用户信息的唯一键值,包括:
接收用户输入的手机号码及验证码;
判断输入的所述手机号码与通过微信服务器调用的手机号码是否一致;
可选的,所述小程序根据用户唯一标识预登录获取预登录令牌之前,包括:
小程序向业务后台的认证中心发送登录授权请求;
所述认证中心根据所述请求生成登录令牌,完成小程序预登录授权。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法的流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1:
本发明实施例提供了基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法,图1为本发明实施例中基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法的流程图。
请参照图1,该方法包括以下步骤:
步骤S101,开启微信小程序。
步骤S102,判断是否处于用户登录状态。若判断结果为否,则执行步骤S103。
步骤S103,开启预登录模式;所述预登录模式为:小程序根据用户唯一标识预登录获取预登录令牌,根据预登录令牌访问业务后台调用不包含用户信息的业务接口。
步骤S104,接收用户操作,判断所述操作是否需要实名认证。若判断结果为是,则执行步骤S105。
步骤S105,将手机号码作为判定是否调用微信的用户信息的唯一键值,若判定结果为是,则执行步骤S106。
步骤S106,所述小程序根据业务后台返回的登录令牌访问业务后台并调用包含用户信息的业务接口。
上述技术方案的工作原理及有益效果为:通过开启微信小程序判断是否有用户登录,当有用户登录时说明已经有过登录授权的过程,用户可以直接进行业务操作,而涉及的业务操作中从业务后台调用各种业务接口时均符合本申请中步骤S106过程,该步骤所述小程序根据业务后台返回的登录令牌访问业务后台并调用包含用户信息的业务接口,符合常规情况下的用户已登录的操作步骤。
但当出现用户没有登录的情况时,需要进行用户的预登录。该预登录模式下小程序根据用户唯一标识预登录获取预登录令牌,根据预登录令牌访问业务后台调用不包含用户信息的业务接口。在该预登录模式下,用户不能访问需要进行实名认证的业务,而当检测到用户需要实名认证的业务操作时,则需要将手机号码作为判定是否调用微信的用户信息的唯一键值,并且所述小程序根据业务后台返回的登录令牌访问业务后台并调用包含用户信息的业务接口。
具体的,用户打开app;小程序判断是否登录,如果没有,则通过wx.login()获取jscode(预登陆凭证),获取得到jscode后,加上appId和appSecret(通过在微信开发平台注册生成)向微信服务器请求openId和sessionKey,openId是appId和appSecret唯一生成的键值,不会改变;小程序拿到openId后调用业务后台预登录接口生成pre token(预登录令牌)。将pre token置于HTTP访问业务后台的接口Header中,此时调用业务后台获取的值都不具备当前登录人的关联信息;如果此时用户需要进行实名操作,需要界面登录。微信提供直接通过wx.getPhoneNumber()函数获取加密后的手机号。用户进行和自己账号相关联的访问业务功能的操作;小程序携带登录令牌向业务后台发起接口请求;验证登录令牌,验证通过则调用业务接口,不成功则返回401。
因此,采用本实施例提供的方案时小程序用户操作状态为无用户信息接口时,也需要通过预登录的形式,携带pre token(预登录令牌)的方式访问,保护后台接口的访问权限;另外,利用oauth2.0的协议,自定义生成以手机号为唯一值的登录态进行登录,可以保证系统的安全性。
实施例2:
在实施例1的基础上,所述开启预登录模式,包括:
获取临时登录凭证;
根据所述临时登录凭证及小程序唯一标识和小程序密码向微信服务器发出请求;
所述微信服务器根据所述请求生成用户唯一标识和会话密钥,并发送至微信小程序;
所述小程序根据用户唯一标识预登录获取预登录令牌,根据预登录令牌访问业务后台调用不包含用户信息的业务接口。
上述技术方案的工作原理及有益效果为:本实施例采用的方案是预登录模式下,根据所述临时登录凭证及小程序唯一标识和小程序密码向微信服务器发出请求,服务器根据请求生成用户唯一标识,小程序根据用户唯一标识预登录获取预登录令牌,根据预登录令牌可以访问不包含用户信息的业务接口。
具体的,用户打开app;小程序判断是否登录,如果没有,则通过wx.login()获取jscode(预登陆凭证),获取得到jscode后,加上appId和appSecret(通过在微信开发平台注册生成)向微信服务器请求openId和sessionKey,openId是appId和appSecret唯一生成的键值,不会改变;小程序拿到openId后调用业务后台预登录接口生成pre token(预登录令牌)。将pre token置于HTTP访问业务后台的接口Header中,此时调用业务后台获取的值都不具备当前登录人的关联信息。
因此,采用本实施例提供的方案可以使小程序用户操作状态为无用户信息接口时,也需要通过预登录的形式,携带pre token的方式访问,保护后台接口的访问权限。
实施例3:
在实施例1的基础上,所述小程序根据业务后台返回的登录令牌访问业务后台并调用包含用户信息的业务接口,包括:
小程序向业务后台调用登录接口;
业务后台向小程序返回登录令牌,并将登录令牌存储在本地;
用户根据所述登录令牌向业务后台发送业务接口请求;
所述业务后台对所述登录令牌进行验证,若验证通过,则调用包含用户信息的业务接口并返回给用户,若验证不通过,则返回错误指令。
上述技术方案的工作原理及有益效果为:本实施例提供的方案是所述小程序根据业务后台返回的登录令牌访问业务后台并调用包含用户信息的业务接口的过程,小程序通过向业务后台发送登录请求,业务后台向小程序返回登录令牌,若业务后台对所述登录令牌进行验证,若验证通过,则用户可以根据登录令牌向业务后台的各个业务发起请求,若验证不通过,则给用户返回错误指令401。
具体的,此时用户需要进行实名操作,需要界面登录。微信提供直接通过wx.getPhoneNumber()函数获取加密后的手机号。业务后台将手机号码作为用户唯一键存入持久层;小程序发起登录操作;返回登录令牌token,此时的登录令牌中包含用户信息;小程序将登录令牌缓存到本地用户进行和自己账号相关联的访问业务功能的操作;小程序携带登录令牌向业务后台发起接口请求;验证登录令牌,验证通过则调用业务接口,不成功则返回401。
因此,采用本实施例提供的方案业务后台与客户端使用通行令不一样,能有效防止客户端绕开网关直接请求后面的服务。
实施例4:
在实施例3的基础上,所述小程序向业务后台调用登录接口之前,包括:
小程序向业务后台的认证中心发送登录授权请求;
所述认证中心根据所述请求生成登录令牌;
所述认证中心对用户信息进行查询,获取用户信息;
所述认证中心以所述登录令牌为键值,生成包含用户信息的jwt token;所述jwttoken基于redis存储;
所述认证中心将所述登录令牌返回至所述小程序,完成小程序登录授权。
上述技术方案的工作原理及有益效果为:本实施例提供的方案是小程序向认证中心发起登录授权的请求过程。当小程序向业务后台的认证中心发送登录授权请求后,认证中心根据所述请求生成登录令牌,同时还对用户信息进行查询,以获取用户信息,并且将登录令牌作为键值,生成包含用户信息的jwt token,采用jwt token作为业务后台的验证参数,进而对用户进行校验。
具体的,小程序向认证中心发起登录授权,携带用户接口执行查询当前登录用户的用户信息。认证中心生成jwt token包含用户信息,以redis token作为key,将jwt token存入其中;小程序得到登录令牌redis token;普通的uuid token对于jwt的长度小很多。
用户认证中心是整个认证项目的核心,对用户信息认证并颁发令牌;oauth2.0支持自定义登录方式,此处登录就是自定义通过手机号作为唯一键值来颁发令牌。使用redistoken功能更多,能方便实现如token自动续约、在线用户列表、踢人等功能。
因此,采用本实施例提供的方案业务后台与客户端使用通行令不一样,能有效防止客户端绕开网关直接请求后面的服务。进一步地,由于jwt token是内部服务使用,客户端只能获取access token没有jwt,所以无需让jwt token失效符合jwt无状态的特性。
实施例5:
在实施例4的基础上,所述业务后台向小程序返回登录令牌,包括:
所述小程序向网关发送基于Bearer token的请求;
网关层对所述小程序的登录令牌向认证中心进行验证;
若验证成功,基于作为键值的登录令牌,从redis中获取jwt token,完成jwttoken的验证;
业务后台向小程序返回登录令牌。
上述技术方案的工作原理及有益效果为:本实施例采用的方案是小程序通过网关进行身份验证的过程,只有通过验证的用户才可以顺利访问业务后台数据及相关操作。而通过网关进行身份验证的过程包括以下步骤:首先向网关发送基于Bearer token的请求,网关层通过认证中心对其身份进行验证,验证依据是登录令牌,若验证通过,则将登录令牌作为键值,从redis中获取jwt token,完成jwt token的身份验证。jwt token只是在网关层和认证中心及redis相互传递的,不会发送至小程序端,也就是前端客户端,
具体的,post接口中Header携带Bearer token(从cookie或缓存中获取)向网关发起请求;在网关层进行redis token的验证;如果token过期,则需要小程序主动发起token刷新,然后生成refreshing token,其中refreshing token过期时长可设置,默认30天有效;验证成功后将拿着redis token作为key从redis中获取jwt token,将jwtToken验证操作放到每个微服务中,保证每个微服务都有认证,此处使用的是无网络隔离,无网络隔离是指用户访问的网络环境与整个系统的部署网络环境是相通的,例如用户可以绕过API网关直接访问后台的服务。网关将jwt token发往各个微服务后,微服务将自己解析jwt获取当前登录人的信息以及相关权限。
因此,客户端仅可以获取登录令牌,而不可以获取jwt token,由于jwt token是内部服务使用,客户端只能获取access token没有jwt,所以无需让jwt token失效符合jwt无状态的特性。因此,采用客户端和系统内部使用不同的access token(登录令牌),防止在无网络隔离环境下客户端绕开网关直接请求后台api方案。
实施例6:
在实施例1的基础上,所述若验证成功,基于作为键值的登录令牌,从redis中获取jwt token,完成jwt token的验证之后,包括:
所述网关层将获取jwt token发送至若干个微服务中;
每个微服务对所述jwt token进行解析,获取当前登录用户的信息及相关权限。
上述技术方案的工作原理及有益效果为:本实施例提供的方案是登录令牌验证成功后将拿着redis token作为key,从redis中获取jwt token,将jwt token验证操作放到每个微服务中,保证每个微服务都有认证,此处使用的是无网络隔离,无网络隔离是指用户访问的网络环境与整个系统的部署网络环境是相通的,例如用户可以绕过API网关直接访问后台的服务。网关将jwt token发往各个微服务后,微服务将自己解析jwt获取当前登录人的信息以及相关权限。
实施例7:
在实施例5的基础上,所述网关层对所述小程序的登录令牌向认证中心进行验证中,若验证失败,则小程序主动向认证中心再次发送登录授权请求,更新登录令牌,完成登录令牌的重新授权。
上述技术方案的工作原理及有益效果为:本实施提供的方案是当登录授权过期之后,登录令牌一般是有时效的,可以设定为30天,当登录令牌过期后,本实施例的方案采取的措施是小程序主动向认证中心再次发送登录授权请求,更新登录令牌,完成登录令牌的重新授权。授权过程如下:小程序向业务后台的认证中心发送登录授权请求;所述认证中心根据所述请求生成登录令牌;所述认证中心对用户信息进行查询,获取用户信息;所述认证中心以所述登录令牌为键值,生成包含用户信息的jwt token;所述jwt token基于redis存储;所述认证中心将所述登录令牌返回至所述小程序,完成小程序登录授权。
具体的,如果redis token过期,则需要小程序主动发起redis token刷新,利用小程序重新得到登录令牌redis token生成refreshing token,其中refreshing token过期时长可设置,默认30天有效。
因此,采用本实施例提供的方案中小程序或者前端可以主动发起redis token(登录令牌)续期操作,用户操作体验性更好,有效的提升用户体验。
实施例8:
在实施例4的基础上,所述获取用户信息之后,包括:
对所述用户信息采用MD5方式对信息进行加密;
相应的,所述认证中心以所述登录令牌为键值,生成包含用户信息的jwt token中,所述用户信息是经过加密后的信息。
上述技术方案的工作原理及有益效果为:本实施例采用的方案是对用户的信息进行加密的过程,通过对用户信息进行加密,保证用户信息的安全性,防止用户信息被泄露或盗取,进而影响用户的经济损失。因此,采用本实施例的方案可以进一步加强小程序登录的安全性。
实施例9:
在实施例1的基础上,所述将手机号码作为判定是否调用微信的用户信息的唯一键值,包括:
接收用户输入的手机号码及验证码;
判断输入的所述手机号码与通过微信服务器调用的手机号码是否一致;
上述技术方案的工作原理及有益效果为:采用本实施例提供的方案是将手机号码作为是否调用微信的用户信息的唯一键值的操作过程,首先需要用户将手机号码及验证码在登录界面进行输入操作,并且通过微信服务器调用用户的手机号码,将接收到的手机号码与调用的手机号码进行比对,判断两者是否一致,若一致,则判定允许小程序根据业务后台返回的登录令牌访问业务后台并调用包含用户信息的业务接口。否则,不允许小程序访问相关的业务操作。
具体的,如果此时用户需要进行实名操作,需要界面登录。微信提供直接通过wx.getPhoneNumber()函数获取加密后的手机号。用户自己输入手机号,通过发送验证码,并携带验证码;其中涉及的手机号码或者加密后的手机号码,业务后台会拿到之前得到的session Key(会话密钥)解密其产生的加密的序列串,业务后台将手机号码作为用户唯一键存入持久层。
因此,采用本实施例提供的方案实现了oauth2.0支持自定义登录方式,此处登录就是自定义通过手机号作为唯一键值来颁发令牌,不会出现同一个openId出现两个用户账号的情况,保证系统的安全性。
实施例10:
在实施例2的基础上,所述小程序根据用户唯一标识预登录获取预登录令牌之前,包括:
小程序向业务后台的认证中心发送登录授权请求;
所述认证中心根据所述请求生成登录令牌,完成小程序预登录授权。
上述技术方案的工作原理及有益效果为:本实施例采用的方案是预登录模式下,小程序向业务后台的认证中心发送登录授权请求的过程,当发送授权请求后,所述认证中心将生成登录令牌,并将登录令牌返回至所述小程序,完成小程序预登录授权,由于所述认证中心在授权时并没有获取用户信息,因此,此时的登录令牌中不包含用户信息,这也是预登录的特点。因此,小程序用户操作无用户信息接口时,也需要通过预登录的形式,携带pretoken(预登录令牌)的方式访问,保护后台接口的访问权限。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (9)

1.基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法,其特征在于,包括:
开启微信小程序,判断是否处于用户登录状态;
若否,开启预登录模式;所述预登录模式为:小程序根据用户唯一标识预登录获取预登录令牌,根据预登录令牌访问业务后台调用不包含用户信息的业务接口;
接收用户操作,判断所述操作是否需要实名认证;
若是,将手机号码作为判定是否调用微信的用户信息的唯一键值;
若判定是调用微信的用户信息的唯一键值,所述小程序根据业务后台返回的登录令牌访问业务后台并调用包含用户信息的业务接口;
所述开启预登录模式,包括:
获取临时登录凭证;
根据所述临时登录凭证及小程序唯一标识和小程序密码向微信服务器发出请求;
所述微信服务器根据所述请求生成用户唯一标识和会话密钥,并发送至微信小程序;
所述小程序根据用户唯一标识预登录获取预登录令牌,根据预登录令牌访问业务后台调用不包含用户信息的业务接口。
2.根据权利要求1所述的基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法,其特征在于,所述小程序根据业务后台返回的登录令牌访问业务后台并调用包含用户信息的业务接口,包括:
小程序向业务后台调用登录接口;
业务后台向小程序返回登录令牌,并将登录令牌存储在本地;
用户根据所述登录令牌向业务后台发送业务接口请求;
所述业务后台对所述登录令牌进行验证,若验证通过,则调用包含用户信息的业务接口并返回给用户,若验证不通过,则返回错误指令。
3.根据权利要求2所述的基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法,其特征在于,所述小程序向业务后台调用登录接口之前,包括:
小程序向业务后台的认证中心发送登录授权请求;
所述认证中心根据所述请求生成登录令牌;
所述认证中心对用户信息进行查询,获取用户信息;
所述认证中心以所述登录令牌为键值,生成包含用户信息的jwt token;所述jwttoken基于redis存储;
所述认证中心将所述登录令牌返回至所述小程序,完成小程序登录授权。
4.根据权利要求3所述的基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法,其特征在于,所述业务后台向小程序返回登录令牌,包括:
所述小程序向网关发送基于Bearer token的请求;
网关层对所述小程序的登录令牌向认证中心进行验证;
若验证成功,基于作为键值的登录令牌,从redis中获取jwt token,完成jwt token的验证;
业务后台向小程序返回登录令牌。
5.根据权利要求4所述的基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法,其特征在于,所述若验证成功,基于作为键值的登录令牌,从redis中获取jwt token,完成jwt token的验证之后,包括:
所述网关层将获取jwt token发送至若干个微服务中;
每个微服务对所述jwt token进行解析,获取当前登录用户的信息及相关权限。
6.根据权利要求4所述的基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法,其特征在于,所述网关层对所述小程序的登录令牌向认证中心进行验证中,若验证失败,则小程序主动向认证中心再次发送登录授权请求,更新登录令牌,完成登录令牌的重新授权。
7.根据权利要求3所述的基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法,其特征在于,所述获取用户信息之后,包括:
对所述用户信息采用MD5方式对信息进行加密;
相应的,所述认证中心以所述登录令牌为键值,生成包含用户信息的jwt token中,所述用户信息是经过加密后的信息。
8.根据权利要求1所述的基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法,其特征在于,所述将手机号码作为判定是否调用微信的用户信息的唯一键值,包括:
接收用户输入的手机号码及验证码;
判断输入的所述手机号码与通过微信服务器调用的手机号码是否一致。
9.根据权利要求1所述的基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法,其特征在于,所述小程序根据用户唯一标识预登录获取预登录令牌之前,包括:
小程序向业务后台的认证中心发送登录授权请求;
所述认证中心根据所述请求生成登录令牌,完成小程序预登录授权。
CN202110292815.1A 2021-03-18 2021-03-18 基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法 Active CN113065115B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110292815.1A CN113065115B (zh) 2021-03-18 2021-03-18 基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110292815.1A CN113065115B (zh) 2021-03-18 2021-03-18 基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法

Publications (2)

Publication Number Publication Date
CN113065115A CN113065115A (zh) 2021-07-02
CN113065115B true CN113065115B (zh) 2022-10-21

Family

ID=76562213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110292815.1A Active CN113065115B (zh) 2021-03-18 2021-03-18 基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法

Country Status (1)

Country Link
CN (1) CN113065115B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114070589A (zh) * 2021-11-03 2022-02-18 浪潮云信息技术股份公司 一种简化JWT后的OAuth2.0认证方法
CN116865982A (zh) * 2022-03-22 2023-10-10 西安即刻易用网络科技有限公司 一种应用管理平台及登录认证方法
CN114928487A (zh) * 2022-05-18 2022-08-19 山东浪潮智慧医疗科技有限公司 一种解决高并发场景下微信令牌失效的方法
CN115208663A (zh) * 2022-07-13 2022-10-18 北京蒸汽记忆科技有限公司 一种基于微信生态的用户一键式身份认证的方法
CN115314326A (zh) * 2022-10-11 2022-11-08 中化现代农业有限公司 一种基于微信小程序实现单点登录的方法和系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10332106B2 (en) * 2012-07-31 2019-06-25 Worldpay, Llc Systems and methods for expedited automated merchant boarding
CN103269270A (zh) * 2013-04-25 2013-08-28 安徽杨凌科技有限公司 一种基于手机号码的实名认证安全登录的方法及系统
CN105592065B (zh) * 2015-11-05 2019-03-15 中国银联股份有限公司 一种基于手机短信的网站登录方法及其登录系统
US10156841B2 (en) * 2015-12-31 2018-12-18 General Electric Company Identity management and device enrollment in a cloud service
US10581825B2 (en) * 2017-01-27 2020-03-03 Equifax Inc. Integrating sensitive data from a data provider into instances of third-party applications executed on user devices
CN109635528A (zh) * 2018-10-31 2019-04-16 武汉艺果互动科技股份有限公司 一种微信小程序用户登陆方法、设备及存储设备
CN109768961A (zh) * 2018-12-12 2019-05-17 平安科技(深圳)有限公司 基于一账通的微信小程序登录方法、装置及存储介质
CN109688147B (zh) * 2018-12-29 2021-12-14 北京达佳互联信息技术有限公司 应用登录方法、装置、终端、服务器、系统及存储介质
CN109743163A (zh) * 2019-01-03 2019-05-10 优信拍(北京)信息科技有限公司 微服务架构中的权限认证方法、装置及系统
CN109962911A (zh) * 2019-02-19 2019-07-02 深圳点猫科技有限公司 一种通过小程序获取用户信息的方法及电子设备
CN110210203A (zh) * 2019-06-04 2019-09-06 武汉神算云信息科技有限责任公司 微信小程序与api的安全保护方法、装置、设备及存储介质
CN110334489A (zh) * 2019-07-12 2019-10-15 广州大白互联网科技有限公司 一种统一身份认证系统和方法
CN111160845B (zh) * 2019-12-06 2023-10-27 中国建设银行股份有限公司 一种业务处理方法和装置
CN111865920B (zh) * 2020-06-18 2022-06-10 庞茂林 一种网关认证和身份鉴权的平台及其方法
CN112380522A (zh) * 2020-11-11 2021-02-19 深圳供电局有限公司 一种综合业务移动应用的管理系统及方法

Also Published As

Publication number Publication date
CN113065115A (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
CN113065115B (zh) 基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法
CN111131242B (zh) 一种权限控制方法、装置和系统
KR101959492B1 (ko) 모바일 디바이스에서의 사용자 인증 및 인간 의도 검증을 위한 방법 및 장치
US9047473B2 (en) System and method for second factor authentication services
CN104639562B (zh) 一种推送认证的系统和设备的工作方法
CN109089264A (zh) 一种移动终端免密登录的方法及系统
US8402552B2 (en) System and method for securely accessing mobile data
CA2744971C (en) Secure transaction authentication
CA2404552C (en) System and method for secure communication
JP4880699B2 (ja) サービスアカウントを保護するための方法、システム、及び装置
CN106230838A (zh) 一种第三方应用访问资源的方法和装置
CN107948204A (zh) 一键登录方法及系统、相关设备以及计算机可读存储介质
WO2014183526A1 (zh) 一种身份识别的方法、装置和系统
US11823007B2 (en) Obtaining device posture of a third party managed device
TW200531493A (en) Method for authenticating applications
JP2007511122A (ja) セキュリティモジュールによるアプリケーションのセキュリティの管理方法
CN101986598B (zh) 认证方法、服务器及系统
CN108880822A (zh) 一种身份认证方法、装置、系统及一种智能无线设备
US20210234850A1 (en) System and method for accessing encrypted data remotely
CN112580006A (zh) 一种多云系统的访问权限控制方法、装置及认证服务器
CN111092899A (zh) 信息获取方法、装置、设备及介质
JP2010506312A (ja) 確実なマルチチャンネル認証
CN109587683B (zh) 短信防监听的方法及系统、应用程序和终端信息数据库
CN105812314B (zh) 一种用户登录互联网应用程序的方法和统一认证平台
WO2013071836A1 (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