一种账号登录方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种账号登录方法及装置。
背景技术
随着移动互联网技术的发展,越来越多的用户习惯于通过移动终端中安装的应用(Application,APP)来获取服务。
为了进一步扩展APP所能提供的服务,目前,通常在APP中设置浏览器 (简称内置浏览器),通过该内置浏览器来获取其他服务。
具体的,用户可在APP对应的服务器上注册账号,并通过登录该账号获取该服务器提供的服务,其中,对于该APP来说,该APP对应的服务器称为内部服务器,用户在该APP对应的服务器上注册的账号称为内部账号,该APP 对应的服务器所提供的服务称为内部服务。用户还可在其他服务器上注册账号,以获取其他服务器所提供的服务,其中,上述的其他服务器称为外部服务器,用户在其他服务器上注册的账号称为外部账号,其他服务器所提供的服务称为外部服务。
用户在通过APP登录其内部账号之后,可直接获取相应的内部服务,也可通过该APP的内置浏览器登录外部账号,获取相应的外部服务。
例如,用户在终端上安装了即时通讯APP,该即时通讯APP中设置了内置浏览器。当用户通过即时通讯APP登录即时通讯账号(内部账号)后,就可以与其他用户进行即时通信,即,获取内部服务,用户还可通过该APP的内置浏览器登录支付账号(外部账号),以获取支付服务器提供的服务(即,外部服务)。
在现有技术中,当用户通过APP登录内部账号后,在需要登录外部账号时,APP从本地获取外部账号,以登录该外部账号。具体的,APP在获取外部账号时,可在内置浏览器的cookie数据中,获取保存的外部账号,如果cookie 数据中未保存外部账号,则可先通过内置浏览器展示外部账号的登录页面,再获取用户在登录页面上输入的外部账号,并将用户输入的外部账号保存在 cookie数据中。获取到外部账号后,APP则可将获取到的外部账号发送给外部服务器,以登录该外部账号。
然而,由于大多cookie数据均缺乏安全机制来保证其安全性,因此,在 cookie数据中保存的外部账号会降低账号信息的安全性。此外,由于账号登录页面也很容易被伪造,因此,在内置浏览器展示的登录页面上输入外部账号也是不安全的。
发明内容
本申请实施例提供一种账号登录方法及装置,用以提高外部账号的安全性。
本申请实施例提供的一种账号登录方法,包括:
接收终端发送的外部登录请求;
获取所述外部登录请求中携带的内部账号和服务器标识;
向所述服务器标识对应的外部服务器发送所述内部账号,以使所述外部服务器查找与所述内部账号预先绑定的外部账号,并登录所述外部账号。
本申请实施例提供的另一种账号登录方法,包括:
接收内部服务器发送的内部账号;
查找与所述内部账号预先绑定的外部账号;
登录所述外部账号。
本申请实施例还提供的一种账号登录方法,包括:
接收终端发送的外部登录请求;
获取所述外部登录请求中携带的内部账号和服务器标识;
查找与所述内部账号预先绑定的与所述服务器标识对应的外部账号;
在所述服务器标识对应的外部服务器上登录所述外部账号。
本申请实施例提供的一种账号登录装置,包括:
外部登录请求接收模块,用于接收终端发送的外部登录请求;
信息获取模块,用于获取所述外部登录请求中携带的内部账号和服务器标识;
内部账号发送模块,用于向所述服务器标识对应的外部服务器发送所述内部账号,以使所述外部服务器查找与所述内部账号预先绑定的外部账号,并登录所述外部账号。
本申请实施例提供的另一种账号登录装置,包括:
内部账号接收模块,用于接收内部服务器发送的内部账号;
外部账号查找模块,用于查找与所述内部账号预先绑定的外部账号;
外部账号登录模块,用于登录所述外部账号。
本申请实施例还提供的一种账号登录装置,包括:
外部登录请求接收模块,用于接收终端发送的外部登录请求;
信息获取模块,用于获取所述外部登录请求中携带的内部账号和服务器标识;
外部账号查找模块,用于查找与所述内部账号预先绑定的与所述服务器标识对应的外部账号;
外部账号登录模块,用于在所述服务器标识对应的外部服务器上登录所述外部账号。
本申请实施例提供一种账号登录方法,该方法内部服务器接收终端发送的外部登录请求,获取该外部登录请求中携带的内部账号和服务器标识,向该服务器标识对应的外部服务器发送该内部账号,以使该外部服务器查找与内部账号预先绑定的外部账号,并登录所述外部账号。这样,由于本申请提供的外部账号不是保存在终端本地的cookie数据中,也不是通过登录页面输入的,而是保存在外部服务器中的,并由该外部服务器自动登录该外部账号,因此,就避免了cookie数据中保存的外部账号安全性较低的问题,以及避免了在登录页面上输入外部账号不安全的问题,从而可保证该外部账号的安全性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种账号登录方法的流程示意图;
图2为本申请实施例提供的一种账号登录装置的结构示意图之一;
图3为本申请实施例提供的一种账号登录装置的结构示意图之二;
图4为本申请实施例提供的一种账号登录装置的结构示意图之三。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,以下将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下将具体说明本申请实施例提供的账号登录方法。
参见图1,为本申请实施例提供的账号登录方法,包括:
S101、内部服务器接收终端发送的外部登录请求。
在本申请实施例中,当用户通过终端上的APP登录内部账号后,在需要登录外部账号时,终端通过APP中的内置浏览器向内部服务器发送外部登录请求,内部服务器则可接收终端发送的外部登录请求。
例如,用户在终端上安装了即时通讯APP,当用户通过该即时通讯APP 登录即时通讯账号(内部账号)后,在需要登录支付账号(外部账号)时,终端通过内置浏览器向即时通讯服务器(内部服务器)发送外部登录请求,即时通讯服务器则可接收终端发送的外部登录请求。
S102、内部服务器获取该外部登录请求中携带的内部账号和服务器标识。
其中,在本申请实施例中,所述的外部登录请求中携带用户当前登录的内部账号,以及外部服务器的服务器标识。
在本申请实施例中,所述的外部服务器的服务器标识可以为该外部服务器的网络协议(Internet Protocol,IP)地址,也可以为该外部服务器的IP地址对应的域名。
沿用上例,即时通讯服务器接收到终端发送的外部登录请求后,获取该外部登录请求中携带的即时通讯账号和支付服务器(外部服务器)的IP地址(服务器标识)。
S103、内部服务器向该服务器标识对应的外部服务器发送该内部账号,以使该外部服务器查找与该内部账号预先绑定的外部账号,并登录该外部账号。
继续沿用上例,即时通讯服务器通过步骤S102获取到用户当前登录的即时通讯账号和支付服务器的IP地址后,根据该IP地址,向支付服务器发送该即时通讯账号。
S104、外部服务器接收内部服务器发送的内部账号。
S105、外部服务器查找与该内部账号预先绑定的外部账号。
在本申请实施例中,外部服务器中保存有如表1所示的多个外部账号与内部账号的绑定关系。
外部账号 |
内部账号 |
208801 |
1980001 |
208802 |
1980002 |
表1
由表1可知,外部账号208801与内部账号1980001绑定;外部账号208802 与内部账号1980002绑定。假设外部服务器接收到内部服务器发送的内部账号为1980001,则外部服务器在表1中查找与内部账号1980001绑定的外部账号 208801。
在本申请实施例中,以绑定内部账号1980001与外部账号208801为例说明。其中,内部账号1980001对应的用户名为A,登录密码为11,外部账号 208801对应的用户名为B,登录密码为22。
具体的,用户首先在外部服务器提供的外部账号登录页面上输入外部账号对应的用户名B和登录密码22,登录该外部账号208801,然后进入外部账号中的账号绑定页面,在该页面的提示下,输入与内部账号对应的用户名A和登录密码11。外部服务器将该用户名A和登录密码11发送给内部服务器,内部服务器接收到该用户名A和登录密码11之后,验证该用户名A和登录密码11 正确,并将用户名A对应的内部账号1980001发送给外部服务器。外部服务器确定并保存内部账号1980001与外部账号208801的绑定关系。
上述内部账号与外部账号是在外部服务器上绑定的,当然,内部账号与外部账号也可以在内部服务器上绑定,并将该内部账号与外部账号的绑定关系保存在内部服务器中。具体绑定过程与上述内部账号与外部账号的绑定过程类似,这里不再赘述。
S106、外部服务器登录该外部账号。
例如,当支付服务器通过步骤S105查找到该支付账号(外部账号)为 208801后,支付服务器可自动登录该支付账号208801。
本申请实施例提供的如图1所示的方法,外部服务器根据内部服务器提供的内部账号,查找自身存储的与该内部账号绑定的外部账号,并自动登录该外部账号,由于本申请提供的外部账号不是保存在终端本地的cookie数据中,也不是通过登录页面输入的,而是保存在外部服务器中的,并由该外部服务器自动登录该外部账号,因此,就避免了cookie数据中保存的外部账号安全性较低的问题,以及避免了在登录页面上输入外部账号不安全的问题,从而可保证该外部账号的安全性。另外,在本申请实施例中,外部服务器查找到外部账号之后,可自动登录该外部账号,而不需要用户进行账号、密码等的相关操作,从而可有效提高用户登录外部账号的便利性。
在上述步骤S103中,内部服务器向外部服务器发送内部账号之前,还需要确定该外部服务器是合法的,这是因为,如果内部服务器将内部账号发送给非法的外部服务器,就无法保证该内部账号的安全性。
因此,在本申请实施例中,内部服务器向外部服务器发送内部账号之前,可向外部服务器发送令牌,并验证外部服务器返回的该令牌的签名,根据对签名的验证结果来确定该外部服务器是否合法。
具体的,内部服务器通过步骤S103向所述服务器标识对应的外部服务器发送所述内部账号之前,还包括:
内部服务器生成令牌,并将该令牌发送给外部服务器,外部服务器接收该内部服务器发送的令牌,对该令牌进行签名,并将该签名返回给内部服务器,内部服务器接收该外部服务器返回的令牌的签名,验证该签名是否合法。当验证结果为该签名合法时,说明该外部服务合法,则通过步骤S103向外部服务器发送内部账号;当验证结果为该签名非法时,说明该外部服务器非法,因此,不向该外部服务器发送内部账号。
进一步的,当内部服务器验证外部服务器返回的令牌的签名非法时,内部服务器还可向终端返回提示信息,以提示用户外部服务器不安全。
可选的,本申请实施例所述的令牌可以是内部服务器动态生成的随机字符串,该随机字符串可以为唯一的随机字符串。
其中,在本申请实施例中,内部服务器可通过公钥验证外部服务器返回的令牌的签名是否合法,来确定外部服务器是否合法。具体的,外部服务器接收到令牌之后,使用私钥对该令牌进行签名,并将该签名返回内部服务器,内部服务器使用公钥验证外部服务器返回的签名合法,也就确定该外部服务器合法。
这是因为,一个公钥对应一个私钥,该私钥仅由合法的内部服务器拥有,即非法的外部服务器没有该私钥。如果非法的外部服务器采用与该公钥不对应的私钥对令牌进行签名,并将该签名发送给内部服务器,则内部服务器通过公钥验证该签名时,验证结果为非法,也就确定返回签名的外部服务器不合法。
在实际应用中,外部服务器可预先在内部服务器中注册,可在注册过程中将公钥保存在该内部服务器中。此外,在该注册过程中,还可将外部服务器的开发者信息保存在内部服务器中。
例如,支付服务器(外部服务器)可预先在即时通讯服务器(内部服务器) 中注册,将公钥保存在即时通讯服务器中,自身保存该私钥。支付服务器还可将邮箱地址、联系电话、联系地址等开发者信息保存在即时通讯服务器中。
上述本申请实施例提供的在确定外部服务器是否合法的过程中,内部服务器生成的令牌是由该内部服务器发送给外部服务器的,当然,在本申请实施例中,该令牌也可由终端发送给外部服务器。
具体的,内部服务器生成令牌,并将该令牌发送给终端上的APP,该APP 接收到令牌之后,通过该APP中的内置浏览器向外部服务器发送令牌和内部服务器的服务器标识。外部服务器接收到该APP发送的令牌和内部服务器的服务器标识后,对该令牌进行签名,并根据接收到的内部服务器的服务器标识将该签名返回给内部服务器。内部服务器接收该外部服务器返回的令牌的签名后,验证该签名是否合法。当验证结果为该签名合法时,说明该外部服务器合法,则通过步骤S103向外部服务器发送内部账号;当验证结果为该签名非法时,说明该外部服务器非法,因此,不向该外部服务器发送内部账号。
在本申请实施例中,如果通过终端将令牌发送给外部服务器,则在步骤 S101中,终端向内部服务器发送的外部登录请求中可以仅携带内部账号,而不需要携带外部服务器的服务器标识。
在本申请实施例中,当外部服务器通过步骤S105未查找到与该内部账号预先绑定的外部账号时,还包括:
外部服务器创建外部账号,将接收到的内部账号与该创建的外部账号进行绑定,并登录该创建的外部账号。
需要说明的是,外部服务器创建外部账号之后,登录该外部账号与绑定内部账号/外部账号之间的先后顺序不限。
在实际应用中,终端上可能安装有不止一个APP,且有可能存在不同的 APP对应相同的内部账号,如果仅仅将这些APP的内部账号与对应的外部账号绑定,当外部服务器接收到内部服务器发送的其中一个APP对应的内部账号时,由于与该内部账号绑定的外部账号不止一个,外部服务器无法仅根据该内部账号确定待登录的外部账号,这样会导致外部账号登录失败。
例如,假设终端上安装有APP1和APP2,APP1对应的内部账号为208801,外部账号为1980001,APP2对应的内部账号为208801,外部账号为1980002,各内部账号与外部账号的绑定关系如表2所示。
外部账号 |
内部账号 |
1980001 |
208801 |
1980002 |
208801 |
表2
由表2可知,外部账号1980001与内部账号208801绑定,外部账号1980002 也与内部账号208801绑定,而实际上,与外部账号1980001绑定的内部账号 208801是与APP1对应的,与外部账号1980002绑定的内部账号208801是与 APP2对应的。当外部服务器接收到内部服务器发送的APP1对应的内部账号 208801时,外部服务器从表2中查找与该内部账号208801绑定的外部账号,由于与该内部账号208801绑定的外部账号包括两个,分别为1980001和 1980002,外部服务器无法确定登录哪一个外部账号,就会导致外部账号登录失败。
因此,本申请可将内部账号、外部账号以及APP标识同时绑定。例如,将APP1、该APP1对应的内部账号和外部账号这三者绑定,将APP2、该APP2 对应的内部账号和外部账号这三者绑定,绑定关系如表3所示。这样,当外部服务器接收到内部服务器返回的与APP1对应的内部账号208801时,从表3 中查找与APP1和内部账号绑定的外部账号1980001,这样,就可避免外部账号登录失败。
外部账号 |
内部账号 |
APP标识 |
1980001 |
208801 |
APP1 |
1980002 |
208801 |
APP2 |
表3
在本申请实施例中,采用图1所示的方法登录账号的同时,可禁用内置浏览器的cookie数据,以及禁用内置浏览器展示外部账号的登录页面这一功能,这样,可以进一步提高外部账号的安全性。
上述图1所示的方法中,外部账号与内部账号的绑定关系是存储于外部服务器中的,当然,该外部账号与内部账号的绑定关系也可以存储于内部服务器中,当内部服务器保存有外部账号与内部账号的绑定关系时,本申请实施例提供的账号登录方法还可通过如下方案实现:
内部服务器可接收终端发送的外部登录请求,并获取该外部登录请求中携带的内部账号和服务器标识,然后查找与该内部账号预先绑定的与所述服务器标识对应的外部账号,并在所述服务器标识对应的外部服务器上登录所述外部账号。
具体的,内部服务器在接收终端发送的外部登录请求时,可接收终端通过 APP的内置浏览器发送的外部登录请求。进一步的,内部服务器可在查找到与内部账号绑定的与服务器标识对应的外部账号后,向该服务器标识对应的外部服务器发送该外部账号,以使该外部服务器登录该外部账号。外部服务器在接收到内部服务器发送的外部账号时,可登录该外部账号。
在本申请实施例中,内部服务器向外部服务器发送外部账号之前,也可确定该外部服务器是合法的,以保证该外部账号的安全性。确定外部服务器合法的过程与本申请上述的确定外部服务器合法的过程类似,这里不再赘述。
以上为本申请实施例提供的账号登录方法,基于同样的思路,本申请实施例还提供了账号登录装置,如图2、图3和图4所示。
参见图2,账号登录装置包括:
外部登录请求接收模块21,用于接收终端发送的外部登录请求;
信息获取模块22,用于获取所述外部登录请求中携带的内部账号和服务器标识;
内部账号发送模块23,用于向所述服务器标识对应的外部服务器发送所述内部账号,以使所述外部服务器查找与所述内部账号预先绑定的外部账号,并登录所述外部账号。
可选的,外部登录请求接收模块21,具体用于:
接收终端通过应用APP的内置浏览器发送的外部登录请求。
装置还包括:
令牌生成模块24,用于生成令牌;
令牌发送模块25,用于将所述令牌发送给所述外部服务器;
签名接收模块26,用于接收所述外部服务器返回的所述令牌的签名;
签名验证模块27,用于验证所述签名合法。
图2所示的账号登录装置可包含在内部服务器中。
参见图3,账号登录装置包括:
内部账号接收模块31,用于接收内部服务器发送的内部账号;
外部账号查找模块32,用于查找与所述内部账号预先绑定的外部账号;
外部账号登录模块33,用于登录所述外部账号。
可选的,该装置还包括:
令牌接收模块34,用于接收所述内部服务器发送的令牌;
令牌签名模块35,用于对所述令牌进行签名;
签名发送模块36,用于将所述签名发送给所述内部服务器。
该装置还包括:
外部账号创建模块37,用于当未查找到与所述内部账号预先绑定的外部账号时,创建外部账号;
绑定模块38,用于将所述内部账号与创建的外部账号绑定;
外部账号登录模块33,还用于登录创建的外部账号。
图3所示的账号登录装置可包含在外部服务器中。
参见图4,账号登录装置包括:
外部登录请求接收模块41,用于接收终端发送的外部登录请求;
信息获取模块42,用于获取所述外部登录请求中携带的内部账号和服务器标识;
外部账号查找模块43,用于查找与所述内部账号预先绑定的外部账号;
外部账号登录模块44,用于在所述服务器标识对应的外部服务器上登录所述外部账号。
可选的,外部登录请求接收模块41,具体用于:
接收终端通过应用APP的内置浏览器发送的外部登录请求。
综上所述,本申请实施例提供的账号登录方法,外部服务器根据内部服务器提供的内部账号,查找自身存储的与该内部账号绑定的外部账号,并自动登录该外部账号,由于本申请提供的外部账号不是保存在终端本地的cookie数据中,也不是通过登录页面输入的,而是保存在外部服务器中的,并由该外部服务器自动登录该外部账号,因此,就避免了cookie数据中保存的外部账号安全性较低的问题,以及避免了在登录页面上输入外部账号不安全的问题,从而可保证该外部账号的安全性。另外,在本申请实施例中,外部服务器查找到外部账号之后,自动登录该外部账号,而不需要用户进行账号、密码等的相关操作,从而可快速登录该外部账号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、 CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和 /或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/ 或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。