一种二维码登录方法和设备
技术领域
本申请涉及互联网技术领域,尤其是涉及一种二维码登录方法和设备。
背景技术
现有技术中,当用户需要登录网站时,网站的服务器通常会在用户的移动终端上显示登录界面,该登录界面由用户名和密码等选项组成。之后,用户在移动终端的登录界面上输入正确的用户名和密码等信息,由移动终端将用户输入的用户名和密码等信息传输到网站的服务器上,继而由服务器校验用户输入的用户名和密码是否正确,从而判定是否允许用户登录网站。
在上述方式中,用户每次登录网站时,均需要输入用户名和密码等信息,由于密码通常是一段比较复杂的字符串,因此用户输入起来很麻烦,从而影响用户的使用体验。而且如果用户忘记密码,还会导致用户无法登录网站。
发明内容
本申请实施例提供一种二维码登录方法和设备,以避免用户在登录界面中输入用户名和密码等信息,提高用户在登录网站时的使用感受。
本申请实施例提供一种二维码登录方法,应用在移动终端上,当所述移动终端上的客户端需要通过二维码登录网站时,所述方法包括以下步骤:
所述移动终端在所述客户端通过用户信息和密码信息成功登录所述网站之后,记录所述客户端与所述用户信息之间的对应关系;
在所述客户端再次登录所述网站时,所述移动终端利用所述对应关系判断是否允许所述客户端通过二维码登录所述网站;
如果是,则所述移动终端获得所述客户端对应的安全标识SecurityId;
所述移动终端利用所述SecurityId生成二维码,并显示所述二维码;
所述移动终端接收所述客户端扫描所述二维码的命令;
所述移动终端在收到所述命令后,确定所述客户端通过二维码登录网站。
所述移动终端获得所述客户端对应的安全标识SecurityId之前,所述方法进一步还包括:所述移动终端在收到所述客户端发起的登录请求时,显示要求用户输入用户信息的登录界面,并接收用户在所述登录界面上输入的用户信息;所述移动终端利用所述用户信息判断用户是否为扫码登录用户;如果是扫码登录用户,则所述移动终端执行获得所述客户端对应的SecurityId的过程;其中,扫码登录用户为能够使用客户端通过二维码登录网站的用户。
所述移动终端利用所述对应关系判断是否允许所述客户端通过二维码登录所述网站的过程,具体包括:
如果用户在所述登录界面上输入的用户信息与所述对应关系中记录的用户信息相同,且再次登录所述网站的客户端与所述对应关系中记录的客户端相同,则所述移动终端确定允许所述客户端通过二维码登录所述网站;否则,所述移动终端确定不允许所述客户端通过二维码登录所述网站。
所述移动终端利用所述用户信息判断用户是否为扫码登录用户的过程,具体包括:所述移动终端在得到所述用户信息之后,对所述用户信息进行校验;如果校验失败,所述移动终端确定用户不是扫码登录用户;如果校验成功,所述移动终端利用所述用户信息查询用户数据库;其中,所述用户数据库用于记录用户信息、用户登录方式、用户描述信息之间的对应关系;如果所述用户数据库中没有记录所述用户信息,所述移动终端确定用户不是扫码登录用户;如果所述用户数据库中记录有所述用户信息,所述移动终端确定所述用户信息对应的用户登录方式;如果所述用户信息对应的用户登录方式为不支持扫码登陆,所述移动终端确定用户不是扫码登录用户;如果所述用户信息对应的用户登录方式为支持扫码登陆,所述移动终端确定所述用户信息对应的用户描述信息;如果所述用户信息对应的用户描述信息为非无线域用户,所述移动终端确定用户不是扫码登录用户;如果所述用户信息对应的用户描述信息为无线域用户,所述移动终端确定用户是扫码登录用户。
所述移动终端获得所述客户端对应的安全标识SecurityId的过程,具体包括:所述移动终端利用所述用户信息获得所述客户端对应的SecurityId,并记录所述用户信息与所述SecurityId之间的对应关系;
其中,所述SecurityId为对应于所述客户端的唯一标识。
所述移动终端在收到所述命令后,确定所述客户端通过二维码登录网站,具体包括:所述移动终端在收到客户端扫描所述二维码的命令后,确定所述客户端扫描的二维码对应的SecurityId,并通过所述二维码对应的SecurityId查询用户信息与SecurityId之间的对应关系,得到所述二维码对应的SecurityId对应的用户信息,并对使用所述用户信息的客户端执行登录网站的流程。
所述SecurityId为具有失效时间的SecurityId,且所述二维码为具有失效时间的二维码。
本申请实施例提供一种移动终端,所述移动终端具体包括:
记录模块,用于在所述移动终端上的客户端通过用户信息和密码信息成功登录网站之后,记录所述客户端与所述用户信息之间的对应关系;
判断模块,用于在所述客户端再次登录所述网站时,利用所述对应关系判断是否允许所述移动终端上的所述客户端通过二维码登录所述网站;
获得模块,用于当允许所述移动终端上的所述客户端通过二维码登录所述网站时,获得所述客户端对应的安全标识SecurityId;
生成模块,用于利用所述SecurityId生成二维码,并显示所述二维码;
接收模块,用于接收所述客户端扫描所述二维码的命令;
登录模块,用于在收到所述命令后,确定客户端通过二维码登录网站。
所述接收模块,还用于在获得所述客户端对应的安全标识SecurityId之前,在收到所述客户端发起的登录请求时,显示要求用户输入用户信息的登录界面,并接收用户在所述登录界面上输入的用户信息;
所述判断模块,还用于利用所述用户信息判断用户是否为扫码登录用户;如果是扫码登录用户,则由所述获得模块获得所述客户端对应的SecurityId;其中,扫码登录用户为能够使用客户端通过二维码登录网站的用户。
所述判断模块,具体用于在利用所述对应关系判断是否允许所述客户端通过二维码登录所述网站时,如果用户在所述登录界面上输入的用户信息与所述对应关系中记录的用户信息相同,且再次登录所述网站的客户端与所述对应关系中记录的客户端相同,则确定允许所述客户端通过二维码登录所述网站;否则,确定不允许所述客户端通过二维码登录所述网站。
所述判断模块,具体用于在利用所述用户信息判断用户是否为扫码登录用户时,在得到所述用户信息之后,对所述用户信息进行校验;如果校验失败,则确定用户不是扫码登录用户;如果校验成功,则利用所述用户信息查询用户数据库;其中,所述用户数据库用于记录用户信息、用户登录方式、用户描述信息之间的对应关系;如果所述用户数据库中没有记录所述用户信息,则确定用户不是扫码登录用户;如果所述用户数据库中记录有所述用户信息,则确定所述用户信息对应的用户登录方式;如果所述用户信息对应的用户登录方式为不支持扫码登陆,则确定用户不是扫码登录用户;如果所述用户信息对应的用户登录方式为支持扫码登陆,则确定所述用户信息对应的用户描述信息;如果所述用户信息对应的用户描述信息为非无线域用户,则确定用户不是扫码登录用户;如果所述用户信息对应的用户描述信息为无线域用户,则确定用户是扫码登录用户。
所述获得模块,具体用于利用所述用户信息获得所述客户端对应的SecurityId,并记录所述用户信息与所述SecurityId之间的对应关系;
其中,所述SecurityId为对应于所述客户端的唯一标识。
所述登录模块,具体用于在收到客户端扫描所述二维码的命令后,确定客户端扫描的二维码对应的SecurityId,并通过所述二维码对应的SecurityId查询用户信息与SecurityId之间的对应关系,得到所述二维码对应的SecurityId对应的用户信息,并对使用所述用户信息的客户端执行登录网站的流程。
所述SecurityId为具有失效时间的SecurityId,且所述二维码为具有失效时间的二维码。
与现有技术相比,本申请实施例至少具有以下优点:本申请实施例中,移动终端能够直接利用客户端对应的SecurityId(安全标识)生成二维码,从而可以避免用户在登录界面中输入用户名和密码等信息,提高用户在登录网站时的使用感受。进一步的,针对已登录过的客户端,通过扫描二维码(即动态生成且有失效时间的二维码)来达到识别并登录授权的操作,由移动终端上安装的客户端来代替实现授权,可以避免输入网站的用户名和密码等信息,从而提升用户的登录体验。
附图说明
为了更加清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请实施例一提供的一种二维码登录方法流程示意图;
图2是本申请实施例二提供的一种二维码登录方法流程示意图;
图3是本申请实施例三提供的一种移动终端的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
针对现有技术中存在的问题,本申请实施例一提供一种二维码登录方法,该方法应用在移动终端上,该移动终端可以使用iOS(移动操作系统)。当移动终端上的客户端需要通过二维码登录网站时,如移动终端上的支付宝钱包客户端需要通过二维码登录支付宝网站、移动终端上的微信客户端需要通过二维码登录微信网站、移动终端上的百度客户端需要通过二维码登录百度网站等,针对已登录过的客户端,使客户端通过扫描二维码来达到识别并登录授权的操作,可避免输入网站的用户名和密码等信息,提升用户的登录体验。
如图1所示,该二维码登录方法具体可以包括以下步骤:
步骤101,移动终端在客户端通过用户信息和密码信息成功登录网站之后,记录客户端(如客户端标识等)与用户信息之间的对应关系。
用户通过客户端首次登录网站时,网站的服务器通常会在用户的移动终端上显示登录界面,该登录界面由用户信息(如用户名)和密码信息等选项组成。之后,用户在移动终端的登录界面上输入正确的用户信息(即用户名)和密码信息,由移动终端将用户输入的用户信息和密码信息传输到网站的服务器上,继而由服务器校验用户输入的用户信息和密码信息是否正确,从而判定是否允许用户登录网站。如果允许用户登录网站,则客户端可以通过上述用户信息和密码信息成功登录网站,此时,移动终端会在客户端通过用户信息和密码信息成功登录网站之后,记录客户端与用户信息之间的对应关系。如果不允许用户登录网站,则要求用户重新输入用户信息和密码信息。
进一步的,在允许用户登录网站,且用户已经通过客户端登录网站之后,则该客户端(如移动终端上的支付宝钱包客户端、移动终端上的微信客户端、移动终端上的百度客户端等)为已登录过的客户端,此时,移动终端上将记录该已经登录过的客户端与用户输入的用户信息之间的对应关系。
步骤102,在客户端再次登录网站时,移动终端利用该对应关系判断是否允许客户端通过二维码登录网站;如果是,则执行步骤103;如果否,则采用现有流程进行处理,由用户通过用户信息和密码信息登录网站。
本申请实施例中,当用户再次通过已经登录过的客户端登录网站时,移动终端可以利用自身记录的已经登录过的客户端与用户输入的用户信息之间的对应关系,判断是否允许客户端通过二维码登录网站;如果允许客户端通过二维码登录网站,则执行步骤103,如果不允许客户端通过二维码登录网站,则用户通过用户信息和密码信息登录网站,该过程本申请实施例中不再赘述。
步骤103,移动终端获得客户端对应的SecurityId(安全标识)。
本申请实施例中,当移动终端上的客户端需要通过二维码登录网站时,该客户端将发起登录请求,且移动终端在收到客户端发起的登录请求时,将显示要求用户输入用户信息(如用户名)的登录界面,由用户在登录界面上输入用户信息。移动终端接收用户在登录界面上输入的用户信息,并利用该用户信息判断用户是否为扫码登录用户;如果是扫码登录用户,则移动终端获得客户端对应的SecurityId,即执行步骤101;如果不是扫码登录用户,则移动终端按照现有登录流程进行处理,该处理过程在此不再详加赘述。
其中,SecurityId是一串数字,且SecurityId是对应于该客户端的唯一标识。基于此,本申请实施例中,移动终端获得客户端对应的SecurityId的过程,具体包括但不限于:基于用户输入的用户信息,移动终端利用该用户信息获得客户端对应的SecurityId,并记录用户信息与SecurityId之间的对应关系。其中,针对用户输入的用户信息,移动终端能够通过特定算法(该特定算法可以如MD5算法、Hash算法等)将该用户信息转换为一串数字,该一串数字即客户端对应的SecurityId。进一步的,由于移动终端通过特定算法将用户信息转换为SecurityId,因此,该SecurityId是对应于客户端的唯一标识。
其中,扫码登录用户为能够使用客户端通过二维码登录网站的用户。基于此,当用户是扫码登录用户时,则说明用户使用的移动终端能够支持用户采用二维码的方式登录网站,如当前的智能手机能够支持用户采用二维码的方式登录网站,使用智能手机的用户可以为扫码登录用户,此时移动终端允许客户端采用本申请实施例提供的技术方案,即移动终端允许客户端通过二维码登录网站;当用户不是扫码登录用户时,则说明用户使用的移动终端不能够支持用户采用二维码的方式登录网站,如当前的非智能手机不能够支持用户采用二维码的方式登录网站,使用非智能手机的用户可以不是扫码登录用户,此时移动终端不允许客户端采用本申请实施例提供的技术方案。
本申请实施例中,移动终端上可以设置登录模块,该登录模块用于与服务器侧的登录中心配合,实现客户端通过二维码登录网站的过程。基于此,当移动终端上的客户端需要通过二维码登录网站时,该客户端将发起登录请求,且移动终端在收到客户端发起的登录请求时,由登录模块与服务器侧的登录中心进行交互,将客户端发起的登录请求通知到服务器侧的登录中心,并由服务器侧的登录中心向登录模块返回登录页面。之后,登录模块在移动终端的浏览器上渲染登录页面,即在移动终端的浏览器上显示要求用户输入用户信息(如用户名)的登录界面,由用户在登录界面上输入用户信息。
本申请实施例中,基于用户在登录界面上输入的用户信息,针对上述步骤102,移动终端利用对应关系判断是否允许客户端通过二维码登录网站的过程中,具体包括但不限于如下方式:如果用户在登录界面上输入的用户信息与对应关系中记录的用户信息相同,且再次登录网站的客户端与对应关系中记录的客户端相同,则移动终端将确定允许客户端通过二维码登录网站;否则,移动终端将确定不允许客户端通过二维码登录网站。
本申请实施例中,移动终端利用用户信息判断用户是否为扫码登录用户的过程,具体包括但不限于如下方式:移动终端在得到用户信息之后,对用户信息进行校验;如果校验失败,移动终端确定用户不是扫码登录用户;如果校验成功,移动终端利用用户信息查询用户数据库;其中,该用户数据库用于记录用户信息、用户登录方式、用户描述信息之间的对应关系;如果用户数据库中没有记录该用户信息,移动终端确定用户不是扫码登录用户;如果用户数据库中记录有该用户信息,移动终端确定用户信息对应的用户登录方式;如果用户信息对应的用户登录方式为不支持扫码登陆,移动终端确定用户不是扫码登录用户;如果用户信息对应的用户登录方式为支持扫码登陆,移动终端确定用户信息对应的用户描述信息;如果用户信息对应的用户描述信息为非无线域用户,移动终端确定用户不是扫码登录用户;如果用户信息对应的用户描述信息为无线域用户,移动终端确定用户是扫码登录用户。
本申请实施例中,移动终端上可以设置登录模块,该登录模块用于与服务器侧的登录中心配合,实现客户端通过二维码登录网站的过程。基于此,移动终端在得到用户信息之后,由移动终端的登录模块与服务器侧的登录中心进行交互,实现用户信息的校验过程;其中,移动终端的登录模块将用户信息发送给服务器侧的登录中心,由服务器侧的登录中心对用户信息进行校验;如果校验失败,则服务器侧的登录中心向登录模块通知校验失败的信息,且登录模块在收到校验失败的信息后,移动终端确定用户不是扫码登录用户;如果校验成功,则服务器侧的登录中心向登录模块通知校验成功的信息。
登录模块在收到校验成功的信息后,由移动终端的登录模块与服务器侧的登录中心进行交互,实现用户数据库的查询过程。其中,移动终端的登录模块通知服务器侧的登录中心利用用户信息查询用户数据库(该用户数据库维护在服务器侧,且该用户数据库用于记录用户信息、用户登录方式、用户描述信息之间的对应关系);由服务器侧的登录中心利用用户信息查询用户数据库。如果用户数据库中没有记录该用户信息,服务器侧的登录中心向登录模块通知用户数据库中没有记录用户信息的信息,登录模块在收到该信息后,移动终端确定用户不是扫码登录用户。如果用户数据库中记录有该用户信息,服务器侧的登录中心向登录模块通知用户数据库中记录有用户信息的信息,登录模块在收到该信息后,通知服务器侧的登录中心确定用户信息对应的用户登录方式,由服务器侧的登录中心确定用户信息对应的用户登录方式。
如果用户信息对应的用户登录方式为不支持扫码登陆,则服务器侧的登录中心向移动终端的登录模块通知用户登录方式为不支持扫码登陆的信息,登录模块在收到该信息后,移动终端确定用户不是扫码登录用户。如果用户信息对应的用户登录方式为支持扫码登陆,则服务器侧的登录中心向移动终端的登录模块通知用户登录方式为支持扫码登陆的信息,登录模块在收到该信息后,通知服务器侧的登录中心确定用户信息对应的用户描述信息,由服务器侧的登录中心确定用户信息对应的用户描述信息。如果用户信息对应的用户描述信息为非无线域用户,服务器侧的登录中心向移动终端的登录模块通知用户描述信息为非无线域用户的信息,登录模块在收到该信息后,移动终端确定用户不是扫码登录用户。如果用户信息对应的用户描述信息为无线域用户,服务器侧的登录中心向登录模块通知用户描述信息为无线域用户的信息,登录模块在收到该信息后,移动终端确定用户是扫码登录用户。
步骤104,移动终端利用该SecurityId生成二维码,并显示该二维码。
本申请实施例中,移动终端在获得客户端对应的SecurityId之后,可以将该SecurityId作为二维码的输入数据,以利用该SecurityId生成二维码。其中,该SecurityId为具有失效时间的SecurityId,且该二维码为具有失效时间的二维码。例如,SecurityId的有效时间为30分钟,在30分钟后SecurityId失效,同时,二维码的有效时间为30分钟,在30分钟后二维码失效。
步骤105,移动终端接收客户端扫描二维码的命令。
本申请实施例中,移动终端在利用SecurityId生成二维码之后,会在客户端的登录界面上显示该二维码,在用户确认当前需要通过客户端登录网站之后,用户会在客户端的登录界面上扫描二维码,并使得客户端发出扫描二维码的命令。之后,移动终端可以接收到客户端扫描二维码的命令。
步骤106,移动终端在收到客户端扫描二维码的命令之后,确定客户端通过二维码登录网站,即移动终端可以触发客户端通过二维码登录网站。
本申请实施例中,移动终端在收到客户端扫描二维码的命令之后,确定客户端通过二维码登录网站的过程,具体包括但不限于如下方式:移动终端在收到客户端扫描二维码的命令之后,由于二维码是基于SecurityId生成的,因此移动终端可以确定客户端扫描的二维码对应的SecurityId,并通过二维码对应的SecurityId查询用户信息与SecurityId之间的对应关系,以得到该二维码对应的SecurityId对应的用户信息。之后,移动终端可以直接对使用该用户信息的客户端执行登录网站的流程,而不再需要输入用户名和密码等信息。
综上所述,本申请实施例中,基于上述技术方案,移动终端能够直接利用客户端对应的SecurityId(安全标识)生成二维码,从而可以避免用户在登录界面中输入用户名和密码等信息,提高用户在登录网站时的使用感受。进一步的,针对已登录的客户端,通过扫描二维码(即动态生成且有失效时间的二维码)来达到识别并登录授权的操作,并由客户端来代替实现授权,可以避免输入网站的用户名和密码等信息,从而可以提升用户的登录体验。
实施例二
本申请实施例二提供一种二维码登录方法,该方法应用在移动终端上,该移动终端可以使用iOS系统。当移动终端上的客户端需要通过二维码登录网站时,如:移动终端上的支付宝钱包客户端需要通过二维码登录支付宝网站、移动终端上的微信客户端需要通过二维码登录微信网站、移动终端上的百度客户端需要通过二维码登录百度网站等,针对已登录过的客户端,可以使客户端通过扫描二维码来达到识别并登录授权的操作,可以避免输入网站的用户名和密码等信息,并提升用户的登录体验。
本申请实施例中,移动终端上可以至少包括以下功能模块:客户端(如支付宝钱包客户端、微信客户端、百度客户端等)、浏览器、登录模块、安全模块。其中,该客户端为需要通过二维码登录网站的功能模块;该登录模块用于与服务器侧的登录中心配合,实现客户端通过二维码登录网站的过程;该安全模块用于与服务器侧的安全中心配合,实现客户端的安全登录。
本申请实施例中,移动终端在客户端通过用户信息和密码信息成功登录网站之后,记录客户端(如客户端标识等)与用户信息之间的对应关系。具体的,用户通过客户端首次登录网站时,网站的服务器通常会在用户的移动终端上显示登录界面,该登录界面由用户信息(如用户名)和密码信息等选项组成。之后,用户在移动终端的登录界面上输入正确的用户信息(即用户名)和密码信息,由移动终端将用户输入的用户信息和密码信息传输到网站的服务器上,继而由服务器校验用户输入的用户信息和密码信息是否正确,从而判定是否允许用户登录网站。如果允许用户登录网站,则客户端可以通过上述用户信息和密码信息成功登录网站,此时,移动终端会在客户端通过用户信息和密码信息成功登录网站之后,记录客户端与用户信息之间的对应关系。如果不允许用户登录网站,则要求用户重新输入用户信息和密码信息。
进一步的,在允许用户登录网站,且用户已经通过客户端登录网站之后,则该客户端(如移动终端上的支付宝钱包客户端、移动终端上的微信客户端、移动终端上的百度客户端等)为已登录过的客户端,此时,移动终端上将记录该已经登录过的客户端与用户输入的用户信息之间的对应关系。
基于此,在客户端再次登录网站时,移动终端利用上述对应关系判断是否允许客户端通过二维码登录网站;如果是,则采用本发明实施例二提出的二维码登录方法登录网站。如果否,则采用现有流程进行处理,由用户通过用户信息和密码信息登录网站。具体的,当用户再次通过已经登录过的客户端登录网站时,移动终端可以利用自身记录的已经登录过的客户端与用户输入的用户信息之间的对应关系,判断是否允许客户端通过二维码登录网站;如果允许客户端通过二维码登录网站,则采用本发明实施例二提出的二维码登录方法登录网站。如果不允许客户端通过二维码登录网站,则用户通过用户信息和密码信息登录网站,该过程本申请实施例中不再赘述。
基于上述应用场景,如图2所示,该二维码登录方法可以包括以下步骤:
步骤201,当移动终端上的客户端需要通过二维码登录网站时,该客户端通过浏览器发起登录请求,即浏览器向登录模块发送登录请求。
步骤202,登录模块在收到客户端发起的登录请求之后,在浏览器上渲染登录页面,即登录模块在浏览器上显示要求用户输入用户信息(如用户名等)的登录界面,并由用户在浏览器的登录界面上输入相应的用户信息。
具体的,由于登录模块用于与服务器侧的登录中心配合,实现客户端通过二维码登录网站的过程。基于此,当登录模块在收到客户端发起的登录请求后,登录模块与服务器侧的登录中心进行交互,将客户端发起的登录请求通知到服务器侧的登录中心,由服务器侧的登录中心向登录模块返回登录页面。之后,登录模块在浏览器上渲染登录页面,即在浏览器上显示要求用户输入用户信息(如用户名)的登录界面,由用户在登录界面上输入用户信息。
步骤203,登录模块接收用户在登录界面上输入的用户信息,即用户在浏览器的登录界面上输入用户信息时,登录模块接收用户输入的用户信息。
步骤204,登录模块利用该用户信息判断用户是否为扫码登录用户;如果用户是扫码登录用户,则执行步骤205;如果用户不是扫码登录用户,则按照现有登录流程进行处理,该处理过程本申请实施例中不再详加赘述。
其中,扫码登录用户为能够使用客户端通过二维码登录网站的用户。基于此,当用户是扫码登录用户时,说明用户使用的移动终端能够支持用户采用二维码的方式登录网站,如当前的智能手机能够支持用户采用二维码的方式登录网站,使用智能手机的用户可以为扫码登录用户,此时允许客户端采用本申请实施例提供的技术方案;当用户不是扫码登录用户时,说明用户使用的移动终端不能够支持用户采用二维码的方式登录网站,如当前的非智能手机不能够支持用户采用二维码的方式登录网站,使用非智能手机的用户可以不是扫码登录用户,此时不允许客户端采用本申请实施例提供的技术方案。
本申请实施例中,登录模块利用用户信息判断用户是否为扫码登录用户的过程,具体包括但不限于如下方式:登录模块在得到用户信息之后,对用户信息进行校验;如果校验失败,登录模块确定用户不是扫码登录用户;如果校验成功,登录模块利用用户信息查询用户数据库;其中,该用户数据库用于记录用户信息、用户登录方式、用户描述信息之间的对应关系;如果用户数据库中没有记录该用户信息,登录模块确定用户不是扫码登录用户;如果用户数据库中记录有该用户信息,登录模块确定用户信息对应的用户登录方式;如果用户信息对应的用户登录方式为不支持扫码登陆,登录模块确定用户不是扫码登录用户;如果用户信息对应的用户登录方式为支持扫码登陆,登录模块确定用户信息对应的用户描述信息;如果用户信息对应的用户描述信息为非无线域用户,登录模块确定用户不是扫码登录用户;如果用户信息对应的用户描述信息为无线域用户,登录模块确定用户是扫码登录用户。
本申请实施例中,登录模块通过与服务器侧的登录中心配合,实现客户端通过二维码登录网站的过程。基于此,登录模块在得到用户信息之后,登录模块与登录中心进行交互,实现用户信息的校验过程;其中,登录模块将用户信息发送给登录中心,由登录中心对用户信息进行校验;如果校验失败,则登录中心向登录模块通知校验失败的信息,且登录模块在收到校验失败的信息后,确定用户不是扫码登录用户;如果校验成功,则登录中心向登录模块通知校验成功的信息。登录模块在收到校验成功的信息后,由登录模块与登录中心进行交互,实现用户数据库的查询过程。其中,登录模块通知登录中心利用用户信息查询用户数据库(该用户数据库维护在服务器侧);由登录中心利用用户信息查询用户数据库。如果用户数据库中没有记录该用户信息,登录中心向登录模块通知用户数据库中没有记录用户信息的信息,登录模块在收到该信息后,确定用户不是扫码登录用户。如果用户数据库中记录有该用户信息,登录中心向登录模块通知用户数据库中记录有用户信息的信息,登录模块在收到该信息后,通知登录中心确定用户信息对应的用户登录方式,由登录中心确定用户信息对应的用户登录方式。如果用户信息对应的用户登录方式为不支持扫码登陆,则登录中心向登录模块通知用户登录方式为不支持扫码登陆的信息,登录模块在收到该信息之后,确定用户不是扫码登录用户。如果用户信息对应的用户登录方式为支持扫码登陆,则登录中心向登录模块通知用户登录方式为支持扫码登陆的信息,登录模块在收到该信息之后,通知登录中心确定用户信息对应的用户描述信息,由登录中心确定用户信息对应的用户描述信息。如果用户信息对应的用户描述信息为非无线域用户,登录中心向登录模块通知用户描述信息为非无线域用户的信息,登录模块在收到该信息之后,确定用户不是扫码登录用户。如果用户信息对应的用户描述信息为无线域用户,登录中心向登录模块通知用户描述信息为无线域用户的信息,登录模块在收到该信息之后,确定用户是扫码登录用户。
具体的,登录模块在得到用户信息之后,可以将用户信息通知给服务器侧的登录中心。登录中心在得到用户信息之后,调用verifyId.json功能对用户信息进行RDS(广播数据系统)校验。如果校验失败,则说明用户为非法用户,登录中心直接输出失败校验码,此时不会识别用户是否为扫码登录用户,登录模块可以确定用户不是扫码登录用户。
如果校验成功,则说明用户为合法用户,登录中心进一步从用户数据库中获取userInfo信息。如果userInfo信息中不包含该用户信息,则说明账户不存在,登录中心直接输出用户数据库中没有记录该用户信息,此时登录模块可以确定用户不是扫码登录用户。如果userInfo信息中包含该用户信息,则说明账户存在,登录中心进一步从用户数据库中查询用户登录方式。
如果用户登录方式为supportScan=fail(即不支持扫码登陆),则说明用户不支持扫码登陆,登录中心直接输出用户不支持扫码登陆,此时登录模块可以确定用户不是扫码登录用户。如果用户登录方式为supportScan=true(即支持扫码登陆),则说明用户支持扫码登陆,登录中心进一步从用户数据库中查询用户描述信息;其中,用户描述信息为用户数据库中记录的profile信息。
如果用户描述信息为Wireless=fail(即非无线域用户),则说明用户为非无线域用户,登录中心直接输出用户为非无线域用户,此时登录模块可以确定用户不是扫码登录用户。如果用户描述信息为Wireless=true(即无线域用户),则说明用户为无线域用户,登录中心直接输出用户为无线域用户,此时登录模块可以确定用户是扫码登录用户,结束扫码登录用户的识别流程。
在上述过程中,用户登录方式和用户描述信息是用户数据库中新增参数,因此会存在获取用户登录方式和/或用户描述信息失败的情况。基于此,如果获取用户登录方式和/或用户描述信息失败,则登录中心直接输出获取用户登录方式和/或用户描述信息失败,此时登录模块确定用户不是扫码登录用户。
步骤205,登录模块向安全模块发送用于请求SecurityId的消息。
步骤206,安全模块获得客户端对应的SecurityId,并将该SecurityId发送给登录模块。其中,该SecurityId是一串数字,且是对应于客户端的唯一标识。
其中,安全模块还需要记录用户信息与SecurityId之间的对应关系。
本申请实施例中,基于用户输入的用户信息,安全模块可以利用该用户信息获得客户端对应的SecurityId,如安全模块能够通过特定算法(该特定算法可以如MD5算法、Hash算法等)将该用户信息转换为一串数字,该一串数字即客户端对应的SecurityId。进一步的,由于安全模块通过特定算法将用户信息转换为SecurityId,因此,该SecurityId是对应于客户端的唯一标识。
由于安全模块用于与服务器侧的安全中心配合,实现客户端的安全登录,因此,安全中心会提供安全querySecurityPolicy接口给安全模块,且安全模块可以通过安全querySecurityPolicy接口,从安全中心获取到SecurityId。其中,安全模块可以从安全中心获取到两种验证方式的SecurityId,一种验证方式的SecurityId为用于扫码登录的SecurityId(即scanCodeSecurityId),本申请实施例中指出的SecurityId为该scanCodeSecurityId;另一种验证方式的SecurityId为用于普通密码登录的SecurityId(即passwordSecurityId)。
步骤207,安全模块利用SecurityId生成二维码,并显示该二维码。
本申请实施例中,安全模块在获得客户端对应的SecurityId之后,可以将该SecurityId作为二维码的输入数据,以利用该SecurityId生成二维码。其中,该SecurityId可以用来多次生成不同的二维码,该SecurityId为具有失效时间的SecurityId,且该二维码为具有失效时间的二维码。例如,SecurityId的有效时间为30分钟,在30分钟后SecurityId失效,同时,二维码的有效时间为30分钟,在30分钟后二维码失效。基于此,在30分钟之后,安全模块需要重新获得SecurityId,并利用重新获得的SecurityId重新生成二维码。
本申请实施例中,安全模块在生成二维码之后,在浏览器上渲染扫码页面,即安全模块在浏览器上显示包含二维码的扫码页面,由用户扫描二维码。
步骤208,当在浏览器上显示包含二维码的扫码页面之后,在用户确认当前需要通过客户端登录网站时,用户会在浏览器的扫码页面上扫描二维码,且客户端会发出扫描二维码的命令。至此,扫描二维码的过程结束。
本申请实施例中,能够显示包含二维码的扫码页面包括但不限于:index、homeB、xbox、express、miniExpress、exterface、payment、iframe等。
步骤209,客户端向无线网关(即应用对应的无线网关)发送登录信息。
步骤210,无线网关通过安全中心向安全模块发送登录信息。
步骤211,安全模块向浏览器通知客户端已经通过安全验证的信息。
步骤212,浏览器向登录模块提交登录请求,登录请求中携带SecurityId。
本申请实施例中,由于在浏览器上显示包含二维码的扫码页面,且二维码是基于SecurityId生成的,因此浏览器可以确定客户端扫描的二维码对应的SecurityId,并在向登录模块提交登录请求时,在登录请求中携带SecurityId。
步骤213,登录模块向安全模块发送携带了SecurityId的验证消息。
步骤214,安全模块获取SecurityId对应的登录信息,并将SecurityId对应的登录信息返回给登录模块。其中,该登录信息可以为用户信息。
本申请实施例中,安全模块中记录有用户信息(如用户名)与SecurityId之间的对应关系,因此,安全模块在收到携带了SecurityId的验证消息之后,可以利用该SecurityId查询用户信息与SecurityId之间的对应关系,以得到该SecurityId对应的用户信息,并将SecurityId对应的用户信息返回给登录模块。
步骤215,登录模块按照登录场景,直接对使用该用户信息的客户端执行登录网站的流程,不再输入用户名和密码等信息,并向浏览器渲染目标地址。
在上述步骤209-步骤215的登录过程中,客户端向无线网关发送登录信息之后,在校验通过之后,会通过轮询方式通知登录中心前端页面提交表单,并检查表单token是否有效。进一步的,在表单提交后,调用安全核心接口获取用户信息,如果获取用户信息失败则渲染错误信息。进一步的,在paymentc登陆场景下,还需要检查用户状态是否正常,且非T用户不能登陆。在快捷登陆(包括迷你快捷)场景下,还需要检查快捷登录场景的独有参数是否正常,如参数IW_PARTNER_ID、IW_PARTNER_EXTERFACE_NAME等。
在上述步骤209-步骤215的登录过程中,登录模块在得到SecurityId对应的登录信息(如用户登陆标识,即用户信息)之后,调用cif的fakeLogin接口执行伪登陆;其中,在调用cif的fakeLogin接口执行伪登陆时,伪登陆会发送CTU事件。如果cif登陆失败,则登录模块渲染相应的错误提示;如果cif登陆成功,则登陆过程结束。在登陆成功之后,还可以设置P3P头、session上下文、权限、cookie等信息,且不需要执行账户被盗、rds检查等操作。
综上所述,本申请实施例中,基于上述技术方案,移动终端能够直接利用客户端对应的SecurityId(安全标识)生成二维码,从而可以避免用户在登录界面中输入用户名和密码等信息,提高用户在登录网站时的使用感受。进一步的,针对已登录过的客户端,通过扫描二维码(即动态生成且有失效时间的二维码)来达到识别并登录授权的操作,并由客户端来代替实现授权,可以避免输入网站的用户名和密码等信息,从而可以提升用户的登录体验。
基于与上述方法同样的申请构思,本申请实施例中还提供了一种移动终端,如图3所示,所述移动终端具体包括:
记录模块11,用于在所述移动终端上的客户端通过用户信息和密码信息成功登录网站之后,记录所述客户端与所述用户信息之间的对应关系;
判断模块12,用于在所述客户端再次登录所述网站时,利用所述对应关系判断是否允许所述移动终端上的所述客户端通过二维码登录所述网站;
获得模块13,用于当允许所述移动终端上的所述客户端通过二维码登录所述网站时,获得所述客户端对应的安全标识SecurityId;
生成模块14,用于利用所述SecurityId生成二维码,并显示所述二维码;
接收模块15,用于接收所述客户端扫描所述二维码的命令;
登录模块16,用于在收到所述命令后,确定客户端通过二维码登录网站。
所述接收模块15,还用于在获得所述客户端对应的安全标识SecurityId之前,在收到所述客户端发起的登录请求时,显示要求用户输入用户信息的登录界面,并接收用户在所述登录界面上输入的用户信息;所述判断模块12,还用于利用所述用户信息判断用户是否为扫码登录用户;如果是扫码登录用户,则由所述获得模块13获得所述客户端对应的SecurityId;其中,扫码登录用户为能够使用客户端通过二维码登录网站的用户。
所述判断模块12,具体用于在利用所述对应关系判断是否允许所述客户端通过二维码登录所述网站时,如果用户在所述登录界面上输入的用户信息与所述对应关系中记录的用户信息相同,且再次登录所述网站的客户端与所述对应关系中记录的客户端相同,则确定允许所述客户端通过二维码登录所述网站;否则,确定不允许所述客户端通过二维码登录所述网站。
所述判断模块12,具体用于在利用所述用户信息判断用户是否为扫码登录用户时,在得到所述用户信息之后,对所述用户信息进行校验;如果校验失败,则确定用户不是扫码登录用户;如果校验成功,则利用所述用户信息查询用户数据库;其中,所述用户数据库用于记录用户信息、用户登录方式、用户描述信息之间的对应关系;如果所述用户数据库中没有记录所述用户信息,则确定用户不是扫码登录用户;如果所述用户数据库中记录有所述用户信息,则确定所述用户信息对应的用户登录方式;如果所述用户信息对应的用户登录方式为不支持扫码登陆,则确定用户不是扫码登录用户;如果所述用户信息对应的用户登录方式为支持扫码登陆,则确定所述用户信息对应的用户描述信息;如果所述用户信息对应的用户描述信息为非无线域用户,则确定用户不是扫码登录用户;如果所述用户信息对应的用户描述信息为无线域用户,则确定用户是扫码登录用户。
所述获得模块13,具体用于利用所述用户信息获得所述客户端对应的SecurityId,并记录所述用户信息与所述SecurityId之间的对应关系;
其中,所述SecurityId为对应于所述客户端的唯一标识。
所述登录模块16,具体用于在收到客户端扫描所述二维码的命令后,确定客户端扫描的二维码对应的SecurityId,并通过所述二维码对应的SecurityId查询用户信息与SecurityId之间的对应关系,得到所述二维码对应的SecurityId对应的用户信息,并对使用所述用户信息的客户端执行登录网站的流程。
本申请实施例中,所述SecurityId为具有失效时间的SecurityId,且所述二维码为具有失效时间的二维码。
其中,本申请装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。