эрланг и внешняя аутентификация - PullRequest
3 голосов
/ 11 мая 2011

Простой сценарий.Пользователь входит в систему через форму, запеченную каким-то высокоуровневым фреймворком (скажем, rails) и начинает общаться.Чат написан на эрланге и в нем могут участвовать только аутентифицированные пользователи. Это означает, что каждый запрос (содержащий некоторый идентификатор сеанса), поступающий со стороны клиента, должен как-то проверяться (аутентифицироваться) внутри кода эрланга.Очевидно, что erlang ничего не знает о зарегистрированных пользователях и должен запросить у этой среды фреймворк.

Вопрос в том, как спроектировать взаимодействие между erlang и фреймворком, чтобы не создавать дополнительных узких мест?

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

Ответы [ 2 ]

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

Если мы говорим о Rails, я считаю, что можно подключиться к той же базе данных из Erlang и извлечь данные сеанса из таблицы сеансов (при условии, что вы используете db в качестве хранилища сеансов). Вы даже можете передавать данные в Rails таким способом.

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

В этом случае нет ничего лучше бесплатного обеда.Если вы сохраните полномочия аутентификации за пределами erlang, вам придется бороться со всей этой головной болью.Вы можете обеспечить некоторое кэширование внутри erlang для повышения скорости, но это будет узким местом, а также вам придется иметь дело со всеми проблемами когерентности кэша.ИМХО лучшее решение - сделать полномочия проверки подлинности erlang и обеспечить проверку подлинности для инфраструктуры высокого уровня.

...