Совместное использование сеанса rails с сервером erlang - PullRequest
1 голос
/ 07 мая 2011

Я планирую многопользовательскую пошаговую веб-игру.Точка входа будет обычным приложением rails, но бэкэнд будет написан на erlang.Я, вероятно, буду использовать socket.io для связи.

Дело в том, как мне подходить к разделению сеансов между rails и erlang?Я могу придумать несколько вариантов, вы можете предоставить больше, если хотите: D

  1. Установка значения httpOnly cookie сессий rails на false и десериализация его на стороне erlang.Я уже пробовал это с пользовательским сервером веб-сокетов в Erlang.Это работает, но это немного менее безопасно, и я привязан к ruby ​​1.8, потому что я не нашел библиотеки, которая могла бы разархивировать материал ruby ​​1.9 из erlang.Кроме того, socket.io в erlang пока не позволяет получить заголовки запроса.
  2. Токен-ориентированный подход.В идеале, клиент должен отправить некоторый токен, и erlang должен быть в состоянии подтвердить, что пользователь должен быть тем, кем должен быть.Я не уверен, как это сделать.
  3. HTTP API.Приложение rails может предоставить некоторый API, который сервер erlang может использовать для проверки учетных данных пользователя.

Расскажите, пожалуйста, о вашем опыте с подобными проблемами и о том, как вы их обрабатывали.Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 07 мая 2011

Я использовал второй подход, чтобы одно приложение сгенерировало токен, который затем можно будет затем аутентифицировать и авторизовать в приложении erlang. Это работает очень хорошо, так как две системы полностью независимы друг от друга, за исключением того, что токен создается одинаково.

Однако при таком подходе вы должны позаботиться о том, чтобы токен не мог быть воссоздан пользователями. Например, если пользователь должен узнать, как создать действительный токен для других пользователей, он может получить доступ к любой учетной записи пользователя в вашей системе. Пожалуйста, поймите, что крипто сложен, и даже профессиональные крипто-парни время от времени ошибаются. Я бы предложил обратиться к специалисту в этой области за помощью в создании токена.

Третий вариант запроса первого приложения для аутентификации и авторизации токена также может быть жизнеспособным решением. Проблемы, с которыми я сталкиваюсь, заключаются в том, что вы хотите вызывать первое приложение только один раз для каждого токена, а также аутентифицировать и авторизовать токен в следующих запросах внутри приложения erlang. Другая проблема состоит в том, что ваше приложение erlang теперь зависит от вашего приложения rails.

1 голос
/ 08 мая 2011

Посмотрите на это: Panmind

...