2

我正在计划一款多人网络回合制游戏。入口点将是一个普通的 rails 应用程序,但后端将用 erlang 编写。我可能会使用 socket.io 进行通信。

问题是,我应该如何处理 rails 和 erlang 之间的会话共享?我可以想到几个选项,如果你愿意,你可以提供更多:D

  1. 将 rails session cookie httpOnly 的值设置为 false,并在 erlang 端对其进行反序列化。我已经在 erlang 中使用自定义 websocket 服务器尝试过这个。它可以工作,但是安全性稍差一些,而且我与 ruby​​ 1.8 相关联,因为我还没有找到一个库来从 erlang 中解组 ruby​​ 1.9 的东西。除此之外,erlang 中的 socket.io 还没有提供获取请求标头的方法。
  2. 基于令牌的方法。理想情况下,客户端会发送一些令牌,并且 erlang 应该能够证明用户是应该的用户。我不确定这应该怎么做。
  3. HTTP API。rails 应用程序可以提供一些 API,erlang 服务器可以使用这些 API 来检查用户凭据。

请告诉我您遇到类似问题的经历以及您是如何处理这些问题的。提前致谢!

4

2 回答 2

2

我使用了第二种方法,让一个应用程序生成一个令牌,然后您可以稍后在 erlang 应用程序中进行身份验证和授权。这非常有效,因为这两个系统彼此完全独立,除了以相同的方式创建令牌。

但是,使用这种方法,您必须特别注意用户不能重新创建令牌。例如,如果用户要发现如何为不同的用户创建有效令牌,他可以访问您系统中的任何用户帐户。请理解,加密很难,即使是专业的加密专家也会时不时地搞错。我建议向该领域的专家寻求有关如何创建令牌的帮助。

要求第一个应用程序对令牌进行身份验证和授权的第三个选项也可能是一个可行的解决方案。我看到的问题是,您只想每个令牌调用第一个应用程序一次,并在 erlang 应用程序内的以下请求中对令牌进行身份验证和授权。另一个问题是您的 erlang 应用程序现在依赖于您的 rails 应用程序。

于 2011-05-07T15:00:06.753 回答
1

看看这个:Panmind

于 2011-05-07T21:31:45.793 回答