与erlang服务器共享rails会话

时间:2011-05-07 14:42:32

标签: ruby-on-rails session erlang websocket socket.io

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

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

  1. 将rails会话cookie的httpOnly值设置为false,并在erlang端反序列化它。我已经在erlang中使用自定义websocket服务器尝试过这个。它可以工作,但它有点不太安全,我与ruby 1.8绑在一起,因为我没有找到一个库来解析erlang中的ruby 1.9内容。除此之外,erlang中的socket.io还没有提供获取请求头的方法。
  2. 基于令牌的方法。理想情况下,客户端会发送一些令牌,而erlang应该能够证明用户应该是谁。我不确定应该怎么做。
  3. HTTP API。 rails应用程序可以提供一些erlang服务器可以用来检查用户凭据的API。
  4. 请告诉我您遇到类似问题的经历以及您如何处理这些问题。提前谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

看一看:Panmind

相关问题