使用finagle进行持久身份验证

时间:2012-11-03 01:35:16

标签: scala authentication rpc thrift finagle

我正在开发一个转弯战略游戏,我正在尝试做多人游戏部分。我从来没有做过类似的事情,但我收到了强烈建议使用rpc。我的多人游戏将托管在主服务器上,基本上玩家会发送他所做的事情并接收新的游戏状态。如果我理解正确,使用rpc架构,服务器只能回复他收到的请求。

所以我认为玩家首先登录服务器,发送凭据,他通过rpc发送他所做的事情,并且每次尝试刷新他当前游戏的x毫秒(通过发送请求“刷新”)。我不明白的是,我如何能够记住认证。我是否需要每次重新登录(并发送凭据)每个请求(这似乎是一个非常多的信息发送)。如何识别来自我当前授予身份验证的某人的请求?如何处理连贯但分离的请求之间的逻辑?

1 个答案:

答案 0 :(得分:3)

一种可能的解决方案是在服务器端维护会话。

当用户登录时,您可以生成会话ID并将会话ID存储到服务器上的会话数据(用户ID等)映射。会话数据可能存储在内存中或某些快速键值存储中,如redis或memcached。存储数据后,您可以将会话ID发送回客户端。现在,您可以将此会话ID发送到服务器以识别用户。