账号绑定方法、装置及服务器
技术领域
本发明涉及账号绑定技术领域,特别是涉及一种账号绑定方法、装置及服务器。
背景技术
随着信息技术的不断发展,客户端不再局限于提供自身与用户之间的交互服务,两个不同的客户端之间也可以进行交互,以访问对方的资源。为了保证资源访问的准确度,需要将登陆两个客户端的访问账号进行绑定。例如,某一用户在购物客户端进行付款时,为了保证准确访问该用户在支付客户端的支付账号所对应的财产资源,需要对购物账号和支付账号进行绑定。
相关技术中,被访问客户端的服务器使用指定的授权协议提供的API(Application Programming Interface,应用程序编程接口),建立访问账号对应的登录令牌与被访问账号对应的登录令牌之间的对应关系,也就是绑定两个登录令牌,从而实现该用户在两个客户端的账号绑定。
但是,由于客户端的版本原因,存在有些版本的客户端无法利用上述指定的授权协议提供的API接口进行账号绑定的问题。因此,如何在不依赖指定的授权协议提供的API接口的前提下,进行账号绑定,是一个亟待解决的问题。
发明内容
本发明实施例的目的在于提供一种账号绑定方法、装置及服务器,以实现在不依赖指定的授权协议提供的API接口的前提下,进行账号绑定的效果。具体技术方案如下:
第一方面,本发明实施例提供了一种账号绑定方法,应用于第一客户端对应的第一服务器,第一客户端为第二客户端待访问的客户端,第二客户端中内置有页面加载控件;该方法包括:
利用所述页面加载控件在所述第二客户端中加载所述第一服务器的目标web客户端后,接收所述目标web客户端上报的所述第一客户端的第一登录令牌,其中,所述目标web客户端被加载后,基于用户在所述目标web客户端中输入的所述第一客户端的第一账号,确定所述第一登录令牌;
获得所述目标web客户端上报的目标数据;其中,所述目标web客户端被加载后,通过指示所述页面加载控件运行预设功能函数的方式,获得所述目标数据;所述预设功能函数用于基于登录所述第二客户端的第二账号,生成所述目标数据,所述目标数据包含表征所述第二账号对应的第二登录令牌的数据;
基于所述目标数据,获得所述第二账号对应的第二登录令牌;
建立所述第一登录令牌与所述第二登录令牌的对应关系。
可选的,所述目标数据包含利用预设加密算法对所述第二登录令牌进行加密后的第一数据;
所述基于所述目标数据,获得所述第二账号对应的第二登录令牌,包括:
利用与所述预设加密算法对应的解密算法,对所述第一数据进行解密,得到所述第二登录令牌。
可选的,所述目标数据还包括:基于所述第二账号生成所述第二登录令牌的生成时间;
在所述建立所述第一登录令牌与所述第二登录令牌的对应关系之前,所述方法还包括:
确定所述第一服务器自身的服务器时间和所述生成时间之间的时间差;
判断所述时间差是否大于预设有效时长;
如果否,则执行所述建立所述第一登录令牌与所述第二登录令牌的对应关系的步骤。
可选的,所述页面加载控件为:页面视图webview;
所述预设的功能函数作为所述页面视图webview的属性,内置在所述页面视图webview中。
可选的,在所述建立所述第一登录令牌与所述第二登录令牌的对应关系之前,所述方法还包括:
判断已建立的第一登录令牌与第二登录令牌的对应关系中,是否存在所述第一账号对应的第一登录令牌和所述第二账号对应的第二登录令牌;
如果不存在,则执行所述建立所述第一登录令牌与所述第二登录令牌的对应关系的步骤。
第二方面,本发明实施例提供了一种账号绑定装置,应用于第一客户端对应的第一服务器,第一客户端为第二客户端待访问的客户端,第二客户端中内置有页面加载控件;该装置包括:
第一登录令牌获取模块,用于利用所述页面加载控件在所述第二客户端中加载所述第一服务器的目标web客户端后,接收所述目标web客户端上报的所述第一客户端的第一登录令牌,其中,所述目标web客户端被加载后,基于用户在所述目标web客户端中输入的所述第一客户端的第一账号,确定所述第一登录令牌;
目标数据获取模块,用于获得所述目标web客户端上报的目标数据;其中,所述目标web客户端被加载后,通过指示所述页面加载控件运行预设功能函数的方式,获得所述目标数据;所述预设功能函数用于基于登录所述第二客户端的第二账号,生成所述目标数据,所述目标数据包含表征所述第二账号对应的第二登录令牌的数据;
第二登录令牌获取模块,用于基于所述目标数据,获得所述第二账号对应的第二登录令牌;
绑定模块,用于建立所述第一登录令牌与所述第二登录令牌的对应关系。
可选的,所述目标数据包含利用预设加密算法对所述第二登录令牌进行加密后的第一数据;
所述第二登录令牌获取模块,具体用于:
利用与所述预设加密算法对应的解密算法,对所述第一数据进行解密,得到所述第二登录令牌。
可选的,所述目标数据还包括:基于所述第二账号生成所述第二登录令牌的生成时间;
所述装置还包括:判断模块;
所述判断模块,用于在所述绑定模块建立所述第一登录令牌与所述第二登录令牌的对应关系之前,确定所述第一服务器自身的服务器时间和所述生成时间之间的时间差;判断所述时间差是否大于预设有效时长;如果否,则触发所述判断模块执行所述建立所述第一登录令牌与所述第二登录令牌的对应关系。
可选的,所述页面加载控件为:页面视图webview;
所述预设的功能函数作为所述页面视图webview的属性,内置在所述页面视图webview中。
可选的,所述装置还包括:判断模块;
所述判断模块,用于在所述绑定模块建立所述第一登录令牌与所述第二登录令牌的对应关系之前,判断已建立的第一登录令牌与第二登录令牌的对应关系中,是否存在所述第一账号对应的第一登录令牌和所述第二账号对应的第二登录令牌;如果不存在,则触发所述判断模块执行所述建立所述第一登录令牌与所述第二登录令牌的对应关系。
第三方面,本发明实施例提供了一种服务器,该服务器包括:
处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现上述第一方面提供的账号绑定方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,包含于服务器,该存储介质内存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面提供的账号绑定方法的步骤。
本发明实施例提供的方案中,由于第二客户端中内置有页面加载控件,因此,可以利用页面加载控件,在第二客户端中加载第一服务器的目标web客户端;并且,第一服务器的目标web客户端被加载后,可以基于用户在目标web客户端中输入的第一客户端的第一账号,确定第一登录令牌,从而将所确定的第一登录令牌上报给第一服务器。并且,由于目标web客户端被加载后,指示第二客户端内置的页面加载控件所运行的预设功能函数,是用于基于登录第二客户端的第二账号,生成目标数据的,因此,运行预设功能函数,可以获得包含表征第二账号对应的第二登录令牌的目标数据;进而可以基于目标数据,获得第二账号对应的第二登录令牌;从而建立所接收的第一登录令牌与所获得的第二登录令牌的对应关系。因此,通过本方案,可以在不依赖指定的授权协议提供的API接口的前提下,实现第一客户端的第一登录令牌对应的第一账号,与第二客户端的第二登录令牌对应的第二账号的绑定。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明一实施例的账号绑定方法的流程示意图;
图2为本发明另一实施例的账号绑定方法的流程示意图;
图3为本发明一实施例的账号绑定方法的时序示意图;
图4为本发明一实施例的账号绑定装置的结构示意图;
图5为本发明一实施例的服务器的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在两个不同客户端之间的账号绑定的相关技术中,被访问客户端的服务器使用指定的授权协议,提供的API(Application Programming Interface,应用程序编程接口),建立访问账号对应的登录令牌与被访问账号对应的登录令牌之间的对应关系,也就是绑定两个登录令牌,从而实现该用户在两个客户端的账号绑定。
但是,由于客户端的版本原因,存在有些版本的客户端无法利用上述指定的授权协议提供的API接口进行账号绑定的问题。举例而言,当指定的授权协议为OAuth2.0(开放授权协议2.0版本)协议时,如果客户端的版本是未完整实现OAuth2.0协议的版本,则该版本的客户端无法利用OAuth2.0协议提供的API接口进行账号绑定。
对此,为了实现在不依赖指定的授权协议提供的API接口的前提下,进行账号绑定,本发明实施例提供了一种账号绑定方法、装置及服务器。
为了便于理解,下面首先对本发明一实施例的账号绑定方法进行介绍。
本发明实施例提供的账号绑定方法,可以应用于第一客户端对应的第一服务器,第一客户端为第二客户端待访问的客户端,第二客户端中内置有页面加载控件。其中,该第一服务器可以包括台式计算机、便携式计算机、互联网电视,智能移动终端、可穿戴式智能终端等,任何可以实现本发明的第一服务器,均属于本发明的保护范围,本发明实施例对此不作限定。并且,第一客户端和第二客户端所实现的功能,本发明实施例不做限定,属于访问和被访问关系的任意两个客户端均可以作为本发明实施例中的第一客户端和第二客户端。示例性的,第一客户端可以为支付类的客户端,第二客户端可以为购物类的客户端;或者,第一客户端可以为支付类的客户端,第二客户端可以视频类的客户端。并且,可以理解的是,该目标web客户端为web网页,该web网页具有一定的数据处理功能,例如:数据采集上报,指示页面加载控件运行特定函数,等等。
如图1所示,本发明一实施例的账号绑定方法,可以包括:
S101,利用页面加载控件在第二客户端中加载第一服务器的目标web客户端后,接收目标web客户端上报的第一客户端的第一登录令牌,其中,目标web客户端被加载后,基于用户在目标web客户端中输入的第一客户端的第一账号,确定第一登录令牌。
其中,该第一服务器对应有用于采集数据的目标web客户端,而该第二客户端中内置有页面加载控件,因此,该页面加载控件可以加载该目标web客户端。该目标web客户端在被加载后,用户可以通过该目标web客户端输入该第一客户端的第一账号,进而,该目标web客户端可以基于该第一账号确定该第一客户端对应的第一登录令牌。并且,该目标web客户端在被加载后,该目标web客户端可以与该页面加载控件交互,从而获得关于该第二客户端对应的第二登录令牌的数据。
其中,第二客户端利用页面加载控件在第二客户端中加载目标web客户端,具体可以是第二客户端请求访问时,该第一服务器将关于目标web客户端的web数据返回给第二客户端,使得页面加载控件基于web数据,在第二客户端中加载第一服务器的目标web客户端。其中,第二客户端请求访问的方式可以是多种的。示例性的,在用户通过页面加载控件所提供的网址输入界面输入该第一服务器的网址后,即目标web客户端对应的加载网址,触发该第二客户端通过该页面加载控件请求访问该目标web客户端;或者,用户点击页面加载控件展示的第一服务器的网址,即目标web客户端对应的加载网址,触发该第二客户端通过该页面加载控件请求访问该目标web客户端。当然,如果后续账号绑定失败,为了解决本发明要解决的技术问题,可以指示页面加载控件在第二客户端中重新加载第一服务器的目标web客户端。可以理解的是,该页面加载控件的具体形式存在多种。可选的,在一种实现方式中,页面加载控件可以为内置在第二客户端中的浏览器。可选的,在另一种实现方式中,页面加载控件可以为内置在第二客户端中的页面视图webview,此时,预设的功能函数可以作为页面视图webview的属性,内置在页面视图webview中。
需要强调的是,任一登录令牌为用于表征账号和密码的凭证,可以使用登录令牌对客户端进行无需输入账号和密码的免密登录。任一登录令牌的类型可以是多种,例如,Access_token(账号系统登录令牌),SSO_Token(账号系统单设备登录令牌)。
并且,第一登录令牌的确定方式可以是多种的。示例性的,目标web客户端可以基于用户在目标web客户端中输入的第一客户端的第一账号,按照预设的登录令牌生成算法,生成第一账号对应的第一登录令牌。示例性的,如果第一客户端存在用于管理账号的账号服务器时,目标web客户端可以将第一账号发送给账号服务器,账号服务器基于所接收的第一账号,按照预设的登录令牌生成算法,生成第一账号对应的第一登录令牌,进而将第一登录返回给目标web客户端,从而目标web客户端实现对第一登录令牌的确定。
在上述登录令牌的确定方式中,由账号服务器生成登录令牌,返回给目标web客户端,可以减轻目标web客户端的工作压力。并且,随着客户端用户的增加,账号也随之增加,由账号服务器生成登录令牌有利于账号管理。
需要说明的是,第一账号包括用户登录第一客户端所使用的登录账号和登录密码。例如,第一客户端为网银客户端时,第一账号可以包括用于登录网银客户端的登录账号,如银行账号或者身份证号码等,以及,该登录账号对应的登录密码。
S102,获得目标web客户端上报的目标数据;其中,目标web客户端被加载后,通过指示页面加载控件运行预设功能函数的方式,获得目标数据;预设功能函数用于基于登录第二客户端的第二账号,生成目标数据,目标数据包含表征第二账号对应的第二登录令牌的数据。
其中,预设功能函数可以是预先内置在页面加载控件中的,例如,当页面加载控件为页面视图webview时,预设功能函数可以包含在object对象中,从而作为页面视图webview的属性内置在页面视图webview中;也可以是预先存储在第二客户端中的;还可以是预先存储在第二客户端对应的第二服务器中的。相应的,预设功能函数的运行方式可以为多种。示例性的,页面加载控件可以直接运行自身包含的预设功能函数;或者,页面加载控件从第二客户端中读取预设功能函数,进而运行所读取的预设功能函数;或者,页面加载控件向第二服务器请求预设功能函数,进而运行所接收的预设功能函数。其中,当页面加载控件为页面视图webview,预设的功能函数可以作为页面视图webview的属性,内置在页面视图webview中时,页面视图webview可以直接运行自身包含的预设功能函数,与从第二客户端中读取预设功能函数、以及向第二服务器请求预设功能函数的方式相比,节省了读取、请求以及接收预设功能函数所耗费的时间,有利于提高账号绑定效率。并且,可以避免读取、请求以及接收过程中,可能出现的网络异常等客观因素造成的预设功能函数获取失败的问题,有利于提高账号绑定的成功率。
并且,表征第二账号对应的第二登录令牌的数据,可以是第二登录令牌本身,也可以是利用预设加密算法对第二登录令牌加密后的数据,还可以是与第二登录令牌对应的标识。任何可以表征第二登录令牌的数据均可用于本发明,本实施例对此不作限制。
需要说明的是,由于登录令牌为用于表征账号和密码的凭证,可以使用登录令牌对客户端进行无需输入账号和密码的免密登录,并且,本发明实施例中存在第二登录令牌的上报,因此,当表征第二账号对应的第二登录令牌的数据为利用预设加密算法对第二登录令牌加密后的数据时,可以提高归属于第二登录令牌对应账号的信息资源、财产资源等的安全性。
并且,由于包含表征第二账号对应的第二登录令牌的数据,因此,目标数据的生成方式也可以是多种的。示例性的,可以是基于第二账号,确定第二账号对应的第二登录令牌,将第二登录令牌或者与第二登录令牌对应的标识作为目标数据;或者,可以是基于第二账号,确定第二账号对应的第二登录令牌,基于第二登录令牌,确定加密数据,将所确定的加密数据作为目标数据。
需要说明的是,基于第二登录令牌,确定加密数据的方式也可以是多种的。举例而言,可以是将第二登录令牌发送给第二服务器,进而接收第二服务器对第二令牌加密后发送的加密数据;还可以是将第二账号发送给第二服务器,进而接收第二服务器加密基于第二账号得到的第二令牌后,发送的加密数据。
并且,与第一登录令牌类似的,第二登录令牌的确定方式也是多种的。示例性的,可以是第二客户端基于第二账号生成的,也可以是第二客户端将第二登录账号发送给第二客户端的账号服务器,该账号服务器基于第二账号生成第二登录令牌,并返回给第二客户端。另外,与第一账号类似的,第二账号也包括用户登录第二客户端所使用的登录账号和登录密码。例如,第二客户端为购物客户端时,第二账号可以包括用于登录购物客户端的登录账号,如邮箱号或者手机号等,以及,该登录账号对应的登录密码。
S103,基于目标数据,获得第二账号对应的第二登录令牌。
与上述生成目标数据的方式相对应的,获得第二登录令牌的方式也可以是多种的。为了便于理解,下面以可选实现方式的方式进行说明:
在一种实现方式中,目标数据包含第二登录令牌本身,则获得第二登录令牌可以是提取目标数据中的第二登录令牌。
在另一种可选实现方式中,目标数据包含利用预设加密算法对第二登录令牌进行加密后的第一数据;则获得第二账号对应的第二登录令牌,可以是利用与预设加密算法对应的解密算法,对第一数据进行解密,得到第二登录令牌。示例性的,预设加密算法可以是Hash(散列)算法,也可以是RSA加密算法。相应的,与预设加密算法对应的解密算法,可以是Hash(散列)算法对应的逆算法,也可以是RSA加密算法对应的公钥或者私钥。其中,RSA算法是一个能同时用于加密和数字签名的算法。
另外,在具体应用中,可能会存在非法拦截登录令牌、使用虚假令牌冒充所拦截的登录令牌的情况。对此,为了减少将冒充第二登录令牌的虚假令牌与第一令牌绑定,在获得目标数据之后,基于目标数据获得第二账号对应的第二登录令牌之前,可以对所获得的目标数据中表征第二登录令牌的数据进行验证。类似的,同样可以对第一登录令牌进行验证。
其中,验证登录令牌的方式,可以是基于登录令牌对应的客户端,或者服务器中预存的账号数据,判断所获得的登录令牌是否属于预存的账号数据;如果属于,则通过验证,登录令牌合法,可以执行步骤S104;否则,利用页面加载控件在第二客户端中,重新加载目标web客户端。当然,第一登录令牌对应第一客户端或者第一服务器,第二登录令牌对应第二客户端或者第二服务器。
S104,建立第一登录令牌与第二登录令牌的对应关系。
其中,对应关系的具体形式可以是多种的。示例性的,对应关系可以是第一登录令牌与第二登录令牌的对应关系表,也可以是表明第一登录令牌与第二登录令牌对应的指针,或者映射关系等等。
另外,对应关系的建立方式也可以是多种的。示例性的,可以是第一服务器直接建立第一登录令牌与第二登录令牌的对应关系,也可以是第一服务器将第一登录令牌和第二登录令牌发送给第一客户端的账号服务器,由账号服务器建立第一登录令牌与第二登录令牌的对应关系。
本发明实施例提供的方案中,由于第二客户端中内置有页面加载控件,因此,可以利用页面加载控件,在第二客户端中加载第一服务器的目标web客户端;并且,第一服务器的目标web客户端被加载后,可以基于用户在目标web客户端中输入的第一客户端的第一账号,确定第一登录令牌,从而将所确定的第一登录令牌上报给第一服务器。并且,由于目标web客户端被加载后,指示第二客户端内置的页面加载控件所运行的预设功能函数,是用于基于登录第二客户端的第二账号,生成目标数据的,因此,运行预设功能函数,可以获得包含表征第二账号对应的第二登录令牌的目标数据;进而可以基于目标数据,获得第二账号对应的第二登录令牌;从而建立所接收的第一登录令牌与所获得的第二登录令牌的对应关系。因此,通过本方案,可以在不依赖指定的授权协议提供的API接口的前提下,实现第一客户端的第一登录令牌对应的第一账号,与第二客户端的第二登录令牌对应的第二账号的绑定。
在一种可选实施例中,在上述图1实施例的步骤S104之前,本发明实施例的账号绑定方法,还可以包括如下步骤:
判断已建立的第一登录令牌与第二登录令牌的对应关系中,是否存在第一账号对应的第一登录令牌和第二账号对应的第二登录令牌;
如果不存在,则执行步骤S104。
在具体应用中,为了避免第二客户端每次访问第一客户端时,对已经绑定过的两个账号进行重新绑定的冗余处理,所造成处理资源和存储资源等浪费,可以在对两个账号绑定前,也就是建立对应关系前,判断已建立的第一登录令牌与第二登录令牌的对应关系中,是否存在第一账号对应的第一登录令牌和第二账号对应的第二登录令牌。如果不存在,则表明两个账号未绑定,因此,可以执行步骤S104。如果存在,则表明两个账号已绑定,因此,可以结束账号绑定,从而避免对已经绑定过的两个账号进行重新绑定的冗余处理,所造成处理资源和存储资源等浪费。
举例而言,已建立的第一登录令牌与第二登录令牌的对应关系包括:第一登录令牌A对应第二登录令牌B。如果第一账号对应的第一登录令牌为A,第二账号对应的第二登录令牌为C,则已建立的第一登录令牌与第二登录令牌的对应关系中,不存在第二账号对应的第二登录令牌为C,因此,可以执行步骤S104,以建立第一登录令牌A和第二登录令牌C的对应关系。
如图2所示,本发明另一实施例的账号绑定方法,可以包括:
S201,利用页面加载控件在第二客户端中加载第一服务器的目标web客户端后,接收目标web客户端上报的第一客户端的第一登录令牌,其中,目标web客户端被加载后,基于用户在目标web客户端中输入的第一客户端的第一账号,确定第一登录令牌。
S201与本发明图1实施例的S101为相同的步骤,在此不再赘述,详见上述图1实施例的描述。
S202,获得目标web客户端上报的目标数据;其中,目标web客户端被加载后,通过指示页面加载控件运行预设功能函数的方式,获得目标数据;预设功能函数用于基于登录第二客户端的第二账号,生成目标数据,目标数据包含表征第二账号对应的第二登录令牌的数据,以及基于第二账号生成第二登录令牌的生成时间。
S202与本发明图1实施例的S102为相似的步骤,区别在于S202中的目标数据还包含基于第二账号生成第二登录令牌的生成时间。对于相同部分在此不再赘述,详见上述图1实施例的描述。
由于生成第二登录令牌的执行主体可以是第二客户端,也可以是第二客户端对应的第二服务器,因此,上述第二登录令牌的生成时间也可以是多种的。示例性的,如果生成第二登录令牌的执行主体是第二客户端,则第二登录令牌的生成时间为生成第二登录令牌时,第二客户端的系统时间。如果生成第二登录令牌的执行主体是第二服务器,则第二登录令牌的生成时间为生成第二登录令牌时,第二服务器的系统时间。
第二登录令牌的生成时间可以用于在后续步骤S203至S205中,实现对第二登录令牌的时效性限制,从而提高账号绑定的安全性。
S203,基于目标数据,获得第二账号对应的第二登录令牌。
S203与本发明图1实施例的S103为相同的步骤,在此不再赘述,详见上述图1实施例的描述。
S204,确定第一服务器自身的服务器时间和生成时间之间的时间差。
其中,第一服务器自身的服务器时间是第一服务器在步骤S203中,获取到第二登录令牌时,第一服务器自身的系统时间。并且,步骤S204中时间差的确定方式可以是,第一服务器自身的服务器时间减去生成时间。
S205,判断时间差是否大于预设有效时长;如果否,则执行步骤S206。
由于登录令牌为用于表征账号和密码的凭证,可以使用登录令牌对客户端进行无需输入账号和密码的免密登录,并且,本发明实施例中存在第二登录令牌的上报,因此,可能会存在非法拦截登录令牌、使用虚假令牌冒充所拦截的登录令牌的问题。
为此,考虑到非法拦截和虚假令牌需要耗费一定的时长,也就是说,与真实的登录令牌相比,虚假令牌被第一服务器接收所用的时间会更长,因此,可以通过上述步骤S203至S205,对第二登录令牌进行时效性限定,从而提高账号绑定的安全性。
需要说明的是,如果时间差大于预设时长,则表明所获得的第二登录令牌可能为虚假账号,此时,为了解决本发明要解决的技术问题,可以利用页面加载控件在第二客户端中,重新加载目标web客户端,以在目标web客户端被加载后,指示页面加载控件重新运行预设功能函数,以重新获得目标数据。
另外,如果时间差大于预设时长,还可以在重新加载的目标web客户端中,输出表明账号存在风险的提示信息;或者,考虑到时间差大于预设时长也可能是网络质量和设备性能等客观异常因素导致的,因此,也可以在重新加载的目标web客户端中,输出表明检查网络和设备等异常的提示信息。
S206,建立第一登录令牌与第二登录令牌的对应关系。
S206与本发明图1实施例的S104为相似的步骤,区别在于S204为在判断出时间差大于预设有效时长时执行。对于相同的部分在此不再赘述,详见上述图1实施例的描述。
通过上述图2实施例,可以实现对第二登录令牌的时效性限定,当第二登录令牌的生成至被第一服务器接收所用的时间满足时效性限定,才建立第一登录令牌与第二登录令牌的对应关系,从而减少与虚假令牌的绑定,提高归属于登录令牌对应账号的信息资源、财产资源等等的安全性。特别是对第二登录令牌进行了加密的情况,非法拦截后进行解密增加了耗时,上述时效性限定的安全性效果相对而言更佳。
此外,在另一种可选的实施例中,上述图1、图2和可选实施例的任一方案中,在获得第二登录账号的步骤之后,还可以利用页面加载控件,在目标web客户端中输出是否绑定账号的提示信息;在接收到授权绑定的指令后,执行建立第一登录令牌和第二令牌的对应关系的步骤。
并且,在又一种可选的实施例中,上述图1、图2和可选实施例的任一方案中,可以确定建立对应关系的开始时间点,在距离开始时间点之后一定时长的判断时间点,确定对应关系是否建立成功,并利用页面加载控件,在目标web客户端中返回用于表明对应关系是否建立成功的绑定状态通知。
为了便于理解,下面以一个具体实例的形式对本发明实施例的账号绑定方法进行完整说明。如图3所示,该方法可以包括:
用户使用第二账号登录第二客户端,使得第二客户端基于第二账号确定第二登录令牌。在通过第二账号登录第二客户端后,第二客户端请求访问第一服务器的目标web客户端。第一服务器接收到访问请求时,将关于目标web客户端的web数据返回给第二客户端,从而使页面视图webview基于web数据,在第二客户端中加载第一服务器的目标web客户端。
目标web客户端被加载后,基于用户在目标web客户端中输入的第一客户端的第一账号,确定第一登录令牌,并向第一服务器上报第一登录令牌。并且,目标web客户端被加载后,指示页面视图webview运行第页面视图webview中的object对象,基于登录第二客户端的第二账号,生成目标数据。为了提高安全性,这个目标数据是由第二客户端从对应的第二服务器获取的。其中,目标包括采用RSA加密算法对第二客户端基于第二账号确定的第二登录令牌,和第二登录令牌的生成时间进行加密后的第一数据。
第一服务器将目标web客户端上报的目标数据反馈至第二客户端,以使第二客户端对目标数据中表征第二登录令牌的数据进行验证。举例而言,目标数据中表征第二登录令牌的数据,可以为采用RSA加密算法对第二登录令牌和第二登录令牌的生成时间加密后的第一数据:字符串(xx+xxx+指定授权协议+....+sso_token+salt+生成时间+...);其中,sso_token表征第二登录令牌;生成时间为第二客户端基于第二账号生成第二登录令牌的时间,例如第二客户端将第二账号发送给第二服务器,使得第二服务器生成第二登录令牌时第二服务器的系统时间;salt、xx、xxx以及“....”代表预先约定的验证信息和标识信息等。当接收到第二登录令牌通过验证的通知后,利用页面视图webview在目标web客户端中输出是否绑定账号的提示信息,例如,可以展示第二账号、确认以及取消授权绑定的按钮。
第一服务器在接收到授权绑定的指令后,利用与RSA加密算法对应的私钥,对目标数据中的第一数据进行解密,获得目标数据包含的第二登录令牌和生成时间。当然,此时目标数据中的第一数据是利用RSA加密算法的公钥进行加密的数据;反之,如果加密使用私钥,则解密使用公钥。第一服务器确定自身的服务器时间,进而确定自身的服务器时间与目标数据中包含的生成时间之间的时间差;判断该时间差是否大于预设有效时长,例如,预设有效时长为60s,当时间差大于60s,则表明第二登录令牌超期无效。在第二令牌有效时,也就是时间差大于预设有效时长,则建立第一登录令牌与第二登录令牌的对应关系。
当然,还可以确定建立对应关系的开始时间点,在距离开始时间点之后一定时长的判断时间点,确定对应关系是否建立成功,并利用页面视图webview,在目标web客户端中返回用于表明对应关系是否建立成功的绑定状态通知。
相应于上述方法实施例,本发明一实施例还提供了账号绑定装置。
如图4所示,本发明一实施例的账号绑定装置,应用于第一客户端对应的第一服务器,所述第一客户端为第二客户端待访问的客户端,所述第二客户端中内置有页面加载控件;该装置可以包括:
第一登录令牌获取模块401,用于利用所述页面加载控件在所述第二客户端中加载所述第一服务器的目标web客户端后,接收所述目标web客户端上报的所述第一客户端的第一登录令牌,其中,所述目标web客户端被加载后,基于用户在所述目标web客户端中输入的所述第一客户端的第一账号,确定所述
第一登录令牌;
目标数据获取模块402,用于获得所述目标web客户端上报的目标数据;其中,所述目标web客户端被加载后,通过指示所述页面加载控件运行预设功能函数的方式,获得所述目标数据;所述预设功能函数用于基于登录所述第二客户端的第二账号,生成所述目标数据,所述目标数据包含表征所述第二账号对应的第二登录令牌的数据;
第二登录令牌获取模块403,用于基于所述目标数据,获得所述第二账号对应的第二登录令牌;
绑定模块404,用于建立所述第一登录令牌与所述第二登录令牌的对应关系。
本发明实施例提供的方案中,由于第二客户端中内置有页面加载控件,因此,可以利用页面加载控件,在第二客户端中加载第一服务器的目标web客户端;并且,第一服务器的目标web客户端被加载后,可以基于用户在目标web客户端中输入的第一客户端的第一账号,确定第一登录令牌,从而将所确定的第一登录令牌上报给第一服务器。并且,由于目标web客户端被加载后,指示第二客户端内置的页面加载控件所运行的预设功能函数,是用于基于登录第二客户端的第二账号,生成目标数据的,因此,运行预设功能函数,可以获得包含表征第二账号对应的第二登录令牌的目标数据;进而可以基于目标数据,获得第二账号对应的第二登录令牌;从而建立所接收的第一登录令牌与所获得的第二登录令牌的对应关系。因此,通过本方案,可以在不依赖指定的授权协议提供的API接口的前提下,实现第一客户端的第一登录令牌对应的第一账号,与第二客户端的第二登录令牌对应的第二账号的绑定。
可选的,所述页面加载控件为:页面视图webview;
所述预设的功能函数作为所述页面视图webview的属性,内置在所述页面视图webview中。
可选的,所述装置还包括:判断模块;
所述判断模块,用于在所述绑定模块404建立所述第一登录令牌与所述第二登录令牌的对应关系之前,判断已建立的第一登录令牌与第二登录令牌的对应关系中,是否存在所述第一账号对应的第一登录令牌和所述第二账号对应的第二登录令牌;如果不存在,则触发所述判断模块执行所述建立所述第一登录令牌与所述第二登录令牌的对应关系。
可选的,所述目标数据包含利用预设加密算法对所述第二登录令牌进行加密后的第一数据;
所述第二登录令牌获取模块,具体用于:
利用与所述预设加密算法对应的解密算法,对所述第一数据进行解密,得到所述第二登录令牌。
可选的,所述目标数据还包括:基于所述第二账号生成所述第二登录令牌的生成时间;
所述装置还包括:判断模块;
所述判断模块,用于在所述绑定模块404建立所述第一登录令牌与所述第二登录令牌的对应关系之前,确定所述第一服务器自身的服务器时间和所述生成时间之间的时间差;判断所述时间差是否大于预设有效时长;如果否,则触发所述判断模块执行所述建立所述第一登录令牌与所述第二登录令牌的对应关系。
相应于上述实施例,本发明实施例还提供了一种服务器,该服务器与第一客户端对应,第一客户端为第二客户端待访问的客户端,第二客户端中内置有页面加载控件;如图5所示,该服务器可以包括:
处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器通503过通信总线504完成相互间的通信;
存储器503,用于存放计算机程序;
处理器501,用于执行上述存储器503上所存放的计算机程序时,实现上述任一实施例中账号绑定方法的步骤。
本发明实施例提供的方案中,由于第二客户端中内置有页面加载控件,因此,可以利用页面加载控件,在第二客户端中加载第一服务器的目标web客户端;并且,第一服务器的目标web客户端被加载后,可以基于用户在目标web客户端中输入的第一客户端的第一账号,确定第一登录令牌,从而将所确定的第一登录令牌上报给第一服务器。并且,由于目标web客户端被加载后,指示第二客户端内置的页面加载控件所运行的预设功能函数,是用于基于登录第二客户端的第二账号,生成目标数据的,因此,运行预设功能函数,可以获得包含表征第二账号对应的第二登录令牌的目标数据;进而可以基于目标数据,获得第二账号对应的第二登录令牌;从而建立所接收的第一登录令牌与所获得的第二登录令牌的对应关系。因此,通过本方案,可以在不依赖指定的授权协议提供的API接口的前提下,实现第一客户端的第一登录令牌对应的第一账号,与第二客户端的第二登录令牌对应的第二账号的绑定。
上述存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离于上述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明一实施例提供的计算机可读存储介质,包含于服务器,所述服务器为上述方法实施例中所提及的第一服务器,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时,实现上述任一实施例中账号绑定方法的步骤。
本发明实施例提供的方案中,由于第二客户端中内置有页面加载控件,因此,可以利用页面加载控件,在第二客户端中加载第一服务器的目标web客户端;并且,第一服务器的目标web客户端被加载后,可以基于用户在目标web客户端中输入的第一客户端的第一账号,确定第一登录令牌,从而将所确定的第一登录令牌上报给第一服务器。并且,由于目标web客户端被加载后,指示第二客户端内置的页面加载控件所运行的预设功能函数,是用于基于登录第二客户端的第二账号,生成目标数据的,因此,运行预设功能函数,可以获得包含表征第二账号对应的第二登录令牌的目标数据;进而可以基于目标数据,获得第二账号对应的第二登录令牌;从而建立所接收的第一登录令牌与所获得的第二登录令牌的对应关系。因此,通过本方案,可以在不依赖指定的授权协议提供的API接口的前提下,实现第一客户端的第一登录令牌对应的第一账号,与第二客户端的第二登录令牌对应的第二账号的绑定。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一实施例中所述的账号绑定方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、DSL(Digital Subscriber Line,数字用户线)或无线(例如:红外线、无线电、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如:DVD(Digital Versatile Disc,数字通用光盘))、或者半导体介质(例如:SSD(Solid StateDisk,固态硬盘))等。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。