一种跨服登录方法技术

技术编号:21044983 阅读:39 留言:0更新日期:2019-05-07 22:49
本发明专利技术涉及一种跨服登录方法,该方法由用户使用客户端登录游戏服务器,在跨服活动开始后,通过客户端申请加入跨服活动,由游戏服务器基于跨服服务器生成的认证随机数生成跨服令牌,客户端持该跨服令牌登录跨服服务器。该方法在保证跨服登录安全性的基础上,降低了服务器压力。

A cross-service login method

The invention relates to a cross-service login method, in which the user logs in to the game server using the client, applies for joining the cross-service activity through the client after the cross-service activity starts, and generates the cross-service token by the game server based on the authentication random number generated by the cross-service server, and the client logs in to the cross-service server with the cross-service token. This method reduces server pressure on the basis of ensuring cross-service login security.

【技术实现步骤摘要】
一种跨服登录方法
本专利技术属于计算机和信息安全领域,尤其涉及一种跨服登录方法。
技术介绍
现有的网络游戏通常都具有多个游戏服务器,玩家需要登录其选择的服务器,从而可与该游戏服务器中的其他玩家进行交互,但是并不能与其他游戏服务器中的玩家交互。为了突破这种限制,一些网络游戏提出了跨服活动的概念,即玩家可以在一定条件下(例如指定时间)参与到跨服活动中,与其他参与跨服活动的来自不同游戏服务器的玩家进行交互。在具体实现上,一般需要引入一个进行跨服活动的服务器,接受来自各个游戏服务器的玩家,从而将各玩家纳入到同一个跨服服务器。当跨服活动开始时,跨服服务器可能面临大量玩家的登录请求,给跨服服务器带来巨大的压力。因此,如何处理大量登录请求,并且保证玩家登录的安全性是一个需要解决的技术问题。
技术实现思路
为了解决现有技术中的上述问题,本专利技术提供了一种跨服登录方法。本专利技术采用的技术方案具体如下:一种跨服登录方法,包括以下步骤:(1)用户使用客户端登录游戏服务器;游戏服务器为该用户生成登录令牌Token,即Token=E(account,R),其中account是用户的账号,E是对称加密算法,R为随机数;(2)当跨服服务器开启跨服活动后,跨服服务器在每个时间周期开始时,根据其当前负荷,计算出该时间周期内可以接受的登录数量K;(3)所述跨服服务器向数据库服务器查询其当前还保有多少个认证随机数;(4)所述数据库服务器向所述跨服服务器回复当前保有的认证随机数的数量m,如果m<K,则所述跨服服务器生成K-m个随机数作为新的认证随机数发送给所述数据库服务器,所述数据库服务器存储该K-m个认证随机数;如果m>K,则所述跨服服务器通知数据库服务器删除其中的m-K个认证随机数;(5)用户通过客户端向游戏服务器提出参与跨服活动的请求;(6)所述游戏服务器向数据库服务器发送请求,申请一个认证随机数;如果数据库服务器当前没有认证随机数,则拒绝该申请;否则所述数据库服务器从其保有的认证随机数中选择一个返回给该游戏服务器,同时将选择的认证随机数从其保有的认证随机数中删除;(7)所述游戏服务器接收到认证随机数R1后,生成一个跨服令牌Token1,即Token1=E(account,R2),其中R2=RR1,并将该跨服令牌发送给所述客户端;(8)所述客户端将用户账号和所述跨服令牌发送给所述跨服服务器以申请登录,所述跨服服务器将所述跨服令牌作为验证数据发送给所述游戏服务器;(9)所述游戏服务器解密所述跨服令牌,获得其中的account和R2,同时游戏服务器获取该account对应的随机数R,计算得到R1=R2R;(10)所述游戏服务器将步骤9获得的account和R1发送给所述跨服服务器,所述跨服服务器判断该account是否和步骤8中接收到的用户账号相同,如果不同则拒绝客户端登录,如果相同再判断R1是否是最近一段时间内生成的认证随机数,如果不是则拒绝该客户端登录,否则接受该客户端登录。进一步地,所述加密算法E的密钥仅由所述游戏服务器存储。进一步地,用户账号account和相应的随机数R关联保存于所述游戏服务器中。进一步地,所述登录领域具有过期时间。进一步地,所述步骤5具体包括:当跨服活动开始后,游戏服务器通知客户端,客户端向用户展示相应的参与选项,用户通过选择这样的选项向游戏服务器发送参与跨服活动的请求。进一步地,所述步骤6中,数据库服务器拒绝游戏服务器的申请后,游戏服务器通知客户端当前服务器忙,或者等待一段时间重新申请。进一步地,所述步骤10中,所述最近一段时间设置为最近的两个时间周期内。本专利技术的有益效果是:在保证跨服登录安全性的基础上,降低了服务器压力。【附图说明】此处所说明的附图是用来提供对本专利技术的进一步理解,构成本申请的一部分,但并不构成对本专利技术的不当限定,在附图中:图1是本专利技术跨服游戏系统的结构图。【具体实施方式】下面将结合附图以及具体实施例来详细说明本专利技术,其中的示意性实施例以及说明仅用来解释本专利技术,但并不作为对本专利技术的限定。参见附图1,其示出了整个跨服游戏系统的结构图,整个系统包括多个游戏客户端、多个游戏服务器、跨服服务器、数据库服务器。用户在通常情况下,使用其客户端登录各自所属的游戏服务器进行游戏,在需要进行跨服活动(例如跨服战)时,客户端登录到跨服服务器进行游戏。客户端与游戏服务器之间,不同服务器之间都可以通过网络互相通信,并且本专利技术登录方法所进行的通信都应在安全信道中进行,例如通过https协议。基于上述系统结构,下面对本专利技术的方法进行详细说明。(1)用户使用客户端登录游戏服务器。在进行跨服活动之前,用户首先需要登录其对应的游戏服务器,具体的,用户在客户端输入其账号和密码,客户端计算密码的哈希值,将该哈希值与该账号一起发送给游戏服务器。游戏服务器随机生成一个随机数R,为该用户生成一个登录令牌Token,即Token=E(account,R),其中account是用户的账号,E是对称加密算法,该加密算法使用的密钥只有游戏服务器知道,并且只有游戏服务器可以解密。游戏服务器将所述登录令牌发送给所述客户端,所述客户端此后就可以持该登录令牌直接登录该游戏服务器。具体的,游戏服务器在生成登录令牌时,将用户账号account和随机数R对应保存于游戏服务器中,因而当游戏服务器接收到登录令牌时,其解密该登录令牌,判断登录令牌中的account和R是否对应,如果对应,则允许该客户端以该用户账号的身份登录。优选的,游戏服务器可以为该登录令牌设置一个过期时间,在过期时间之后,要求用户重新使用其账号密码登录,并生成新的登录令牌。(2)当跨服服务器开启跨服活动后,跨服服务器在每个时间周期开始时,根据其当前负荷,计算出该时间周期内可以接受的登录数量K。所述时间周期是预先确定的,例如10分钟,跨服服务器计算出下个10分钟内可接受多少个用户登录,而不会对跨服服务器造成过大压力。并且每隔10分钟跨服服务器都计算一次,得到下个10分钟可接受的登录数量。由于跨服服务器的负荷是动态变化的,每个时间周期都会有新用户登录,也会有用户退出跨服活动,因而为每个时间周期计算得到的可接受登录数量都是不同的。(3)所述跨服服务器向数据库服务器查询其当前还保有多少个认证随机数。所述认证随机数是由跨服服务器生成的(具体的生成和作用见后续步骤),并且由数据库服务器存储,认证随机数的数量由跨服服务器控制。(4)所述数据库服务器向所述跨服服务器回复当前保有的认证随机数的数量(假设有m个),若m<K,则所述跨服服务器生成K-m个随机数作为新的认证随机数发送给所述数据库服务器,所述数据库服务器存储该K-m个认证随机数;若m>K,则所述跨服服务器通知数据库服务器删除其中的m-K个认证随机数。所述认证随机数用于认证其可接受的跨服登录,通过步骤4,跨服服务器保证了数据库服务器中有且仅有K个认证随机数,对应于当前时间周期可登录的数量。(5)用户通过客户端向游戏服务器提出参与跨服活动的请求。具体的,当跨服活动开始后,游戏服务器会通知客户端,客户端也会向用户展示相应的参与选项,用户通过选择这样的选项向游戏服务器发送参与跨服活动的请求。(6)所述游戏服务器向数据库服务器发送请求,申请一个认证随本文档来自技高网...

【技术保护点】
1.一种跨服登录方法,其特征在于,包括以下步骤:(1)用户使用客户端登录游戏服务器;游戏服务器为该用户生成登录令牌Token,即Token=E(account,R),其中account是用户的账号,E是对称加密算法,R为随机数;(2)当跨服服务器开启跨服活动后,跨服服务器在每个时间周期开始时,根据其当前负荷,计算出该时间周期内可以接受的登录数量K;(3)所述跨服服务器向数据库服务器查询其当前还保有多少个认证随机数;(4)所述数据库服务器向所述跨服服务器回复当前保有的认证随机数的数量m,如果m<K,则所述跨服服务器生成K‑m个随机数作为新的认证随机数发送给所述数据库服务器,所述数据库服务器存储该K‑m个认证随机数;如果m>K,则所述跨服服务器通知数据库服务器删除其中的m‑K个认证随机数;(5)用户通过客户端向游戏服务器提出参与跨服活动的请求;(6)所述游戏服务器向数据库服务器发送请求,申请一个认证随机数;如果数据库服务器当前没有认证随机数,则拒绝该申请;否则所述数据库服务器从其保有的认证随机数中选择一个返回给该游戏服务器,同时将选择的认证随机数从其保有的认证随机数中删除;(7)所述游戏服务器接收到认证随机数R1后,生成一个跨服令牌Token1,即Token1=E(account,R2),其中R2=R R1,并将该跨服令牌发送给所述客户端;(8)所述客户端将用户账号和所述跨服令牌发送给所述跨服服务器以申请登录,所述跨服服务器将所述跨服令牌作为验证数据发送给所述游戏服务器;(9)所述游戏服务器解密所述跨服令牌,获得其中的account和R2,同时游戏服务器获取该account对应的随机数R,计算得到R1=R2 R;(10)所述游戏服务器将步骤9获得的account和R1发送给所述跨服服务器,所述跨服服务器判断该account是否和步骤8中接收到的用户账号相同,如果不同则拒绝客户端登录,如果相同再判断R1是否是最近一段时间内生成的认证随机数,如果不是则拒绝该客户端登录,否则接受该客户端登录。...

【技术特征摘要】
1.一种跨服登录方法,其特征在于,包括以下步骤:(1)用户使用客户端登录游戏服务器;游戏服务器为该用户生成登录令牌Token,即Token=E(account,R),其中account是用户的账号,E是对称加密算法,R为随机数;(2)当跨服服务器开启跨服活动后,跨服服务器在每个时间周期开始时,根据其当前负荷,计算出该时间周期内可以接受的登录数量K;(3)所述跨服服务器向数据库服务器查询其当前还保有多少个认证随机数;(4)所述数据库服务器向所述跨服服务器回复当前保有的认证随机数的数量m,如果m<K,则所述跨服服务器生成K-m个随机数作为新的认证随机数发送给所述数据库服务器,所述数据库服务器存储该K-m个认证随机数;如果m>K,则所述跨服服务器通知数据库服务器删除其中的m-K个认证随机数;(5)用户通过客户端向游戏服务器提出参与跨服活动的请求;(6)所述游戏服务器向数据库服务器发送请求,申请一个认证随机数;如果数据库服务器当前没有认证随机数,则拒绝该申请;否则所述数据库服务器从其保有的认证随机数中选择一个返回给该游戏服务器,同时将选择的认证随机数从其保有的认证随机数中删除;(7)所述游戏服务器接收到认证随机数R1后,生成一个跨服令牌Token1,即Token1=E(account,R2),其中R2=RR1,并将该跨服令牌发送给所述客户端;(8)所述客户端将用户账号和所述跨服令牌发送给所述跨服服务器以申请登录,所述跨服...

【专利技术属性】
技术研发人员:易黎明
申请(专利权)人:苏州仙峰网络科技股份有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1