Login Server

游戏服务器登录认证

游戏需进行登录、账号密码验证、上线下线记录等,当客户端向游戏服务器连接之前,先和账号登录服务器连接。另一种情况是客户端直接和游戏服务器相连,然后游戏服务器作为客户端的代理向账号登录服务器进行验证。验证后获取游戏服务器列表,由玩家选择进入那个游戏服务器。

账号登录服务器

账号登录服务器具有两个职责,分别是管理账号和验证账号。

  • 管理账号
    账号的注册生成、删除等操作,账号一般会使用数据库进行管理。
  • 验证账号
    注册后会生成账号,登录游戏时会输入账号密码或通过第三方登录的方式来操作。

登录行为中可能会出现的异常情况

  • 同一账户在多个终端登录
  • 同一账户登录报文被持续多次发送
  • 登录过程中某服务进程失效
  • 登录过程中终端连接已断开

为保证登录过程的健壮,可使用多段登录、服务器无状态化、时序图推到。

  • 多段登录

登录过程越长设计的服务进程越多,不确定因素风险也就越大。 若服务器架构合理可将服务器架构按功能区块化即微服化,根据分而治之的原理,将整个登录过程拆分为多个模块,每个登录处理模块相对独立做成多段式登录。

多段登录好处在于

  • 登录复杂度被降幂,登录过程简化。
  • 多段登录中即使某段登录不成功也只会让某部分游戏功能失效。

多段登录常见划分形式

  • 大厅段登录以保证能够正常进入大厅
  • 房间段登录以保证能够正常进入房间
  • 跨服网关段登录以保证正常跨服操作,比如跨服聊天等。

服务无状态化

多服务进程间通信之所以容易产生问题,其中一个很大的原因是代码实现中会在多个进程中保存同一账号相关的数据,因此容易发生服务进程间数据不同步。所有类型服务器都可以做成无状态化的,这样登录过程的复杂度又降低了一个幂次。

时序图推导

多服务器交互过程中如果直接编码,从代码上反查通常会很苦难。如果有工具能将整个过程清晰的描绘出来,那么检查其中的错误会方便很多。整个流程都确定后再编码,可以事半功倍。而这个工具就是时序图。


大厅登录

登录涉及服务

大厅段登录会涉及到的服务进程包括客户端Client、登录服Login、大厅服Lobby、缓存服Cache、数据库服DB。

  • Login 负责账号验证,包括第三方平台账号验证。
  • Lobby 负责个人业务,不涉及多玩家交互。

登录实现思路

  1. Login、Lobby无状态化,数据临时存放在Cache中。
  2. Login通过DB验证账号密码并将自己和Lobby的令牌存入Cache
  3. Client通过令牌正常与Login和Lobby交互

登通信方式

从传统的角度来看首先会先到使用TCP,如果使用HTTP登录流程的复杂度将再次降幂,可以基于大型网站运维手段部署Login和Lobby,因此采用HTTP作为通讯手段。

目前苹果公司app商家审核是禁止HTTP通信的,所以最好使用HTTPS作为通信协议。使用HTTPS的好处是信息被加密,同时带来缺点是服务器资源额外的开销,包括CPU和带宽等。

登录令牌

对于TCP连接而言,Token令牌只用于连接后的第一次身份验证,随后Token失效,因此可以认为是非常安全的。而对HTTP/HTTPS来说,由于是基于短连接的,因此每次请求都必须携带Token,这就有可能存在Token被盗用而伪造请求的情况。因此可以将Token做加密处理,比如使用md5(token + salt)的方式,让salt变化即生成动态令牌。

登录时序

登录时序

多终端登录

  • 当暂无账号信息创建账号时,实现中必须保证当且仅当没有账号数据时才创建账号。
  • 最后终端将重置令牌,因此之前的终端中的令牌局部可用。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352