一种登录方法和装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种使用计算机进行登录的方法和装置。
背景技术
随着经济和科技的发展,互联网,尤其是移动互联网在现代化的生活中越来越普及,越来越多的用户通过互联网来进行各种活动,如娱乐,交流,购物,等。一般来说,用户是使用各种软件来进行这些活动的,例如,通过通讯软件进行交流等。这些软件往往需要用户登录后才能使用,或登录后能获得更多功能。相应的,用户往往也会在登录或自动登录后再在使用这些软件。
一般来说,用户登录时,服务器需要根据用户登录账号(登录账号又称登录身份标识),在用户平台进行多次查询;还需要在无线认证平台对登录账号和用户设备之间的绑定关系进行多次查询和判断。当出现频繁、大量、集中的用户登录时,用户平台和无线认证平台负担会增加,可能造成服务器反应迟缓甚至瘫痪。例如,每年春节晚上,有大量用户会集中在凌晨登录通讯软件,互相发送春节祝福,并导致极高的登录并发请求;要准备的容量为150w/s的登录并发。如此大量、集中的用户登录会对服务器造成负担,甚至可能会造成服务器反应迟缓甚至瘫痪,从而影响用户体验。
从而,有必要找到一种对服务器负担较小的登录方法。
发明内容
有鉴于此,本发明提供了一种使用计算机进行登录的方法和装置,其能够通过使用会话控制数据进行登录处理,从而可以降低对无线认证平台和用户平台的压力。并且,使用会话控制数据需要进行的查找和确认次数更少。从而,本方法可以降低用户登录对服务器的压力。
本申请实施例提供一种登录方法,包括:
接收登录请求;
根据登录请求,获取会话控制身份标识;
根据所述会话控制身份标识,获取会话控制信息;
根据会话控制信息进行登录处理。
优选的,所述获取会话控制身份标识,包括:
从所述登录请求中获取会话控制身份标识。
优选的,所述获取会话控制身份标识,包括:
从所述登录请求中获取登录身份标识、设备身份标识;
根据所述登录身份标识、所述设备身份标识获取复用键;
根据所述复用键获取会话控制身份标识。
优选的,所述根据所述复用键获取会话控制身份标识,包括:
从数据库获得以复用键为键的值。
优选的,所述根据会话控制身份标识,获取会话控制信息,包括:
从数据库获得以会话控制身份标识为键的值。
优选的,所述根据会话控制信息进行登录处理,包括:
当所述会话控制信息中的登录信息不为空,且所述会话控制信息中的用户信息包含的登录身份标识与所述登录请求中携带的登录身份标识相同时,允许所述登录身份标识登录。
优选的,在所述获取会话控制身份标识之前,还包括:
构造会话控制数据,所述会话控制数据包括会话控制身份标识和与所述会话控制身份标识对应的会话控制信息,所述会话控制信息包括用户信息、登录信息中的至少一种。
优选的,根据历史登录请求或历史登录请求数据构造会话控制数据。
本申请实施例还提供一种登录方法,包括:
生成登录请求;
查找保存在本地的会话控制身份标识;
将所述会话控制身份标识携带在所述登录请求中发送给服务器,以使所述服务器根据所述登录请求获取所述会话控制身份标识,并根据所述会话控制身份标识获取会话控制信息,根据所述会话控制信息进行登录处理。
本申请实施例还提供一种登录装置,包括:
登录请求接收装置,接收登录请求;
会话控制身份标识获取装置,根据登录请求,获取会话控制身份标识;
会话控制信息获取装置,根据所述会话控制身份标识,获取会话控制信息;
登录处理装置,根据会话控制信息进行登录处理。
优选的,所述会话控制身份标识获取装置从所述登录请求中获取会话控制身份标识。
优选的,还包括:
会话控制数据构造装置,在所述获取会话控制身份标识之前,构造会话控制数据,所述会话控制数据包括会话控制身份标识和与所述会话控制身份标识对应的会话控制信息,所述会话控制信息包括用户信息、登录信息中的至少一种。
本申请实施例还提供一种登录装置,包括:
登录请求生成装置,生成登录请求;
会话控制身份标识查找装置,查找保存在本地的会话控制身份标识;
会话控制身份标识发送装置,将所述会话控制身份标识携带在所述登录请求中发送给服务器,以使所述服务器根据所述登录请求获取所述会话控制身份标识,并根据所述会话控制身份标识获取会话控制信息,根据所述会话控制信息进行登录处理。
通过使用会话控制数据进行登录处理,可以降低对无线认证平台和用户平台的压力。并且,使用会话控制数据需要进行的查找和确认次数更少。从而降低了用户登录对服务器的压力。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为现有技术中一种登录方式示意图;
图2为第一实施例登录方法流程示意图;
图3为第一实施例使用场景示意图;
图4为第生成并保存复用key流程示意图;
图5为第二实施例登录方法流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
在现有技术中,免密登录可以是依据以下流程进行。
在客户端使用账号(loginId)密码登录成功时,服务器将该客户端所在设备的设备标识(设备Id)和用户标识(userId)进行绑定,构造一条数据录入数据库,其中账号指的是用户登录账号,如邮箱或手机号,userId指的是用户在数据库中的唯一标识;
客户端再次登录时,向服务器发送该客户端所在设备的设备Id和loginId;
服务器根据loginId查找对应的userId,如果服务器确定查找到的userId和客户端发送的设备Id存在绑定关系,则登录成功。
这一登录方法如图1所示,图中的登录系统、用户平台、无线认证平台均为服务器的一部分。
登录系统接收登录请求,并将登录请求中的loginId发送至用户平台,将登录请求中的设备Id发送至无线认证平台;
用户平台根据loginId查询userId,并将userId发送给无线认证平台;
无线认证平台判断userId和设备Id之间是否存在绑定关系,并将判断结果返还登录系统;
登录系统根据无线认证平台返还的绑定关系判断结果决定是否应用登录成功。
以上是一种现有的免密登录方法。在现有技术中,用户平台根据loginId查询userId往往需要进行多次查询,无线认证平台判断userId和设备Id之间是否存在绑定关系也往往需要进行多次查询和判断,占用大量服务器资源,效率低下。
下面介绍本申请中的登录方法。
首先介绍本申请中使用的会话控制(Session)数据。
Session数据是一个键-值(key-value)结构的数据,其中键(key)可以是字符串(String),key是Session数据的唯一标识,即会话控制身份标识(SessionId);值(value)可以是一个对象(Object),是Session数据主要的信息携带者,即会话控制信息(CacheSession)。CacheSession中可以包括设备信息(DeviceInfo)、用户信息(userInfo),客户端信息(ClientInfo),登录信息(loginInfo)。
Session数据可以在账号密码登录成功后生成,其中,SessionId可以通过随机数、时间信息以及其余相关信息生成。生成Session数据后,可以由服务器将该SessionId发送给客户端保存;CacheSession中的loginInfo可以由客户端上传得到,可以包含登录时间等信息;ClientInfo可以包含客户端上传的客户端标识和客户端版本信息,还可以包含客户端的数字签名;DeviceInfo可以包含客户端上传的设备标识,还可以包含设备类型信息;userInfo可以包含客户端上传的账号loginId,还可以包含该loginId对应的userId。
Session数据的结构可以是如表1所示。
表1
Session数据可以保存到键-值(key-value)数据库中,优选的,可以保存到Tair数据库中。
本实施例的登录流程如图2所示。
S101:服务器接收免密登录请求。
当用户要通过免密登录方式登录时,可通过客户端向服务器发送免密登录请求。
S102:从登录请求中获取SessionId。
服务器接收到上述登录请求后,可直接从登录请求中获取客户端上传的SessionId。
当然,如果服务器中设有用于控制是否使用Session的分时复用开关,则服务器可在该分时复用开关为开时,从登录请求中获取SessionId。
S103:根据SessionId,从Tair中获取CacheSession。
服务器获取到SessionId后,如果判断获取到的SessionId不为空,则可根据获取到的SessionId,从Tair中获取CacheSession。
S104:根据CacheSession进行登录处理。
服务器获取到CacheSession后,如果判断获取到的CacheSession不为空,且CacheSession中包含的userInfo、loginInfo均不为空,则可根据CacheSession进行登录处理。
具体的,根据CacheSession进行登录处理可以是根据CacheSession组装用户登录结果(UserLoginRes),包括根据userInfo中的loginId进行登录处理,当loginId与所述登录请求中携带的登录身份标识相同时,允许所述登录身份标识登录,并返回登录结果。
在这一流程中,无需再次对Session数据进行更新,从而可以减少计算量,节约服务器资源。
如分时复用开关关闭,或SessionId为空,或CacheSession为空,或CacheSession中包含的userInfo、loginInfo中任一为空,则采用原有的登录流程进行登录。原有登录流程可以是本实施例开头部分提到的现有免密登录方法。
本实施例系统组成可以是如图3所示,其中:
移动终端可以是用户使用的智能手机、平板电脑等移动设备;
移动网关用于对用户的请求进行鉴权和转发,是移动终端与服务器的连接点;
登录系统用于接收用户登录请求,承载登录业务,创建Session数据;
用户平台保存用户的基本信息数据,并提供查询userId,验证密码,创建新用户等功能;
用户db是用户平台使用的数据库;
移动权限校验系统是无线认证平台的一种,其中保存了用户免登关系,并提供免登关系创建和校验。
移动权限db是移动权限校验系统使用的数据库。
Tair是一种分布式键-值缓存数据库。
值得注意的是,在本实施例中,采用如图2所示的通过Session数据登录的方法,用户平台、用户db、移动权限校验系统、移动权限db并不会被使用到,当不能通过Session数据登录时(如,Session数据尚未被生成时),则可使用用户平台、用户db、移动权限校验系统、移动权限db,并通过原有的登录流程进行登录。通过使用本实施例中提出的方法,可以根据SessionId从数据库中查找CacheSession,而不需要在用户平台、无线认证平台进行查找,而且也不需要判断userId和设备Id之间是否存在绑定关系。由于不再需要使用效率低下的用户平台、无线认证平台进行查找和判断,降低了用户登录时对用户平台、无线认证平台的压力,从而,本方法有效的降低了服务器承担的压力,实现承担更大的并行登录请求的效果。
另外,服务器可以在用户登录前,根据用户的历史登录请求中携带的生成Session数据所需的数据,生成Session数据。该方式实际上是根据历史登录请求生成虚拟的登录请求,用户端不需要实际发出登录请求,可根据该虚拟的登录请求生成Session数据。在用户实际登录前生成Session数据,并延长Session数据存活时间,这样在用户实际登录时就可以采用本实施例中的登录方式并且不需要采用原有登录方式。
实施例2
实施例1中提出了一种从登录请求中获取客户端上传的SessionId,并根据SessionId获取CacheSession,最后根据CacheSession中的信息进行登录操作的方法。然而,并不是所有的登录请求中都一定包含SessionId,例如客户端未保存SessionId(如,丢失SessionId等情况)。为解决这一问题,本实施例中,提出了另一种登录方法。
为了说明本实施例,首先介绍本实施例中使用的复用数据。
复用数据可以是在账号密码登录成功后生成,也可以是在生成Session数据时生成。复用数据包含该次登录成功时生成的Session数据中的SessionId和根据设备id生成的数据,从而,在知道设备id的情况下,可以根据设备id,生成相应的数据,并根据此数据查找相应的SessionId。
例如,在支付软件的登录场景中,生成的复用数据可以是一种key-value结构,可以储存在Tair数据库中。其中key部分可以是字符串,可以是根据登录请求中的loginId、钱包设备标识(walletTid)、钱包设备标识对应的密钥(walletClientKey)、快捷设备标识(mspTid)、快捷设备标识对应的密钥(mspClientKey)进行信息-摘要算法5(Message-Digest Algorithm 5,简称MD5)后得到的字符串。Value部分可以是SessionId,可以是在账号密码登录成功后生成的Session数据的SessionId。
复用数据的key部分称为复用key,生成复用key所用的walletTid和mspTid往往是相同的,统称为设备标识(Tid),walletClientKey和mspClientKey往往也是相同的,统称为设备标识秘钥。
图4展示了一种复用数据的生成和保存流程。如图4所示,在登录成功之后,根据loginId、Tid和设备标识秘钥获取复用key;将复用key、对应的SessionId、以及复用key和SessionId之间的对应关系缓存至Tair中;结束流程。
复用数据的结构可以如表2所示。
表2
Key |
Value |
MD5(loginId,walletTid,walletClientKey,mspTid,mspClientKey) |
SessionId |
根据复用数据的结构,可以由复用key获得对应的SessionId。
以下介绍本实施例的流程,如图5所示。
S201:服务器接收免密登录请求。
当用户要通过免密登录方式登录时,可通过客户端向服务器发送免密登录请求。
S202:从登录请求中获取loginId、tid和设备标识秘钥,根据loginId、tid和设备标识秘钥进行MD5运算,获取复用key。
当然,如果服务器中设有用于控制是否使用Session的分时复用开关,则服务器可在该分时复用开关为开时,从登录请求中获取loginId、tid和设备标识秘钥。
S203:根据复用key从Tair中获取对应的SessionId(S202);在获取SessionId后,本实施例流程与实施例1中获取SessionId后的流程相同或相似;
S204:根据SessionId,从Tair中获取CacheSession。
服务器获取到SessionId后,如果判断获取到的SessionId不为空,则可根据获取到的SessionId,从Tair中获取CacheSession。
S205:根据CacheSession进行登录处理。
服务器获取到CacheSession后,如果判断获取到的CacheSession不为空,且CacheSession中包含的userInfo、loginInfo均不为空,则可根据CacheSession进行登录处理。
具体的,根据CacheSession进行登录处理可以是根据CacheSession组装用户登录结果(UserLoginRes),包括根据userInfo中的loginId进行登录处理,当loginId与所述登录请求中携带的登录身份标识相同时,允许所述登录身份标识登录,并返回登录结果。
如分时复用开关关闭,或SessionId为空,或CacheSession为空,或CacheSession中包含的userInfo、loginInfo中任一为空,则采用原有的登录流程进行登录。原有登录流程可以是实施例1开头部分提到的现有免密登录方法。
本实施例提出了一种当登录请求中不存在SessionId时的登录方法,根据登录请求中其他数据来尝试寻找SessionId,在找到SessionId后,将情况转化为实施例1中的情况。
实施例3
本发明实施方式还提出了一种登录方法,包括:
生成登录请求;
查找保存在本地的会话控制身份标识;
将所述会话控制身份标识携带在所述登录请求中发送给服务器,以使所述服务器根据所述登录请求获取所述会话控制身份标识,并根据所述会话控制身份标识获取会话控制信息,根据所述会话控制信息进行登录处理。
服务器可以是根据实施例1中提出的方法进行登录处理。
实施例4
本发明实施方式还提出了一种登录装置,包括:
登录请求接收装置,接收登录请求;
会话控制身份标识获取装置,根据登录请求,获取会话控制身份标识;
会话控制信息获取装置,根据所述会话控制身份标识,获取会话控制信息;
登录处理装置,根据会话控制信息进行登录处理。
本实施例使用登录请求接收装置接收登录请求,使用会话控制身份标识获取装置根据登录请求获取会话控制身份标识,使用会话控制信息获取装置根据所述会话控制身份标识获取会话控制信息,使用登录处理装置根据会话控制信息进行登录处理,从而可以使用Session数据进行登录处理,降低了对用户平台和无线认证平台的压力,从而可以承受更多的并行登录请求。
在一个实施方式中,所述会话控制身份标识获取装置从所述登录请求中获取会话控制身份标识。
通过使用会话控制身份标识,可以直接获得SessionId,进而获得CacheSession,并以此进行登录处理。
在一个实施方式中,所述登录装置,还包括:
会话控制数据构造装置,在所述获取会话控制身份标识之前,构造会话控制数据,所述会话控制数据包括会话控制身份标识和与所述会话控制身份标识对应的会话控制信息,所述会话控制信息包括用户信息、登录信息中的至少一种。
通过使用会话控制数据构造装置,可以构造所需的Session数据、SessionId和CacheSession,还可以将其用于登录流程。
实施例5
本发明实施方式还提出了一种登录装置,包括:
登录请求生成装置,生成登录请求;
会话控制身份标识查找装置,查找保存在本地的会话控制身份标识;
会话控制身份标识发送装置,将所述会话控制身份标识携带在所述登录请求中发送给服务器,以使所述服务器根据所述登录请求获取所述会话控制身份标识,并根据所述会话控制身份标识获取会话控制信息,根据所述会话控制信息进行登录处理。
可以使用实施例4中的会话控制身份标识获取装置获取会话控制身份标识发送装置发送的会话控制身份标识;并使用登录处理装置根据会话控制信息进行登录处理。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入操作/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且包括没有明确列出的其他要素,或者是包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。