Аутентификация нескольких Rails-серверов против Devise аутентификации - PullRequest
0 голосов
/ 03 декабря 2018

У нас есть монолитный сервер Rails 3 (Ruby 1.9), который делает для нас все , включая аутентификацию сеанса Devise.

Недавно мы решили представить новый сервер Rails 5 (встроенныйс нуля), который будет служить сервером API и медленно заменять существующие возможности на старом сервере.

Наша проблема заключается в том, что аутентификация сеанса происходит на старом сервере rails, и мы хотим включить аутентификацию сеанса в новый Rails 5server.

У кого-нибудь есть опыт или предложения о том, как использовать новые rails-серверы для аутентификации сеансов на существующем rails-сервере, на котором есть информация о сеансе?разработка - аутентификация на стороне сервера - не моя сильная сторона.

1 Ответ

0 голосов
/ 03 декабря 2018

У вас может быть несколько приложений Rails, которые совместно используют одну базу данных и используют Device для аутентификации пользователей.Но вы должны убедиться, что при шифровании паролей используется один и тот же ввод / алгоритм.

Для Devise это был BCrypt по умолчанию в течение достаточно долгого времени, вы также должны убедиться, что настройка config.stretches соответствует обоим приложениям,Реализация несколько изменилась за прошедшие годы, и ваш пробег может варьироваться.

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

Но вы также должны начать с признания того, что приложения могут вообще не иметь одинаковых требований аутентификации.Большинство API (по крайней мере, хороших) используют аутентификацию на основе токенов, которая не имеет состояния.

Одна из основных проблем с аутентификацией на основе сеансов заключается в том, что файлы cookie обычно работают в одном домене или поддоменах и обычно отключаются браузером, если они работают.междоменный (сторонние куки), что означает, что у вас будут проблемы, если ваши API и устаревшее приложение не находятся на одном и том же поддомене.Куки-файлы также являются функцией, доступной только в браузерах, в то время как аутентификация на основе токенов работает в любом клиенте.

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

Существует несколько гемов, которые обеспечивают аутентификацию на основе токенов для Devise.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...