Rails 3- Devise - Аутентификация через веб-сервис - PullRequest
1 голос
/ 05 января 2012

Мне нужно реализовать веб-сервис входа в систему в RoR 3. Я применил Devise к модели пользователя и добавил несколько полей.

Что я хочу сделать: 1 - Клиент выполняет сервис REST, отправляяпользователь и пароль.2- Сервер подтверждает это (используя поле encrypted_password в таблице User) и возвращает токен доступа со сроком действия. 3- Клиент отправляет этот токен доступа во все службы, которые он выполняет, и, если токен не истек, сервер отправляет ответ без ошибки.

Как я могу реализовать эту схему с помощью Devise.Я уже применил Devise к пользовательской модели.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 06 января 2012

Devise не делает ничего подобного из коробки.

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

# config/initializers/devise.rb
config.http_authenticatable = true

Отправка и хранение токена доступа - это то, что вам нужно для домашнего приготовления, насколько мне известно, Devise ничего подобного не делает. Возможно, модель токенов, принадлежащая пользователю?

Вы можете создать собственную стратегию Warden для аутентификации с помощью вашего токена. Ниже приведен пример того, как это может работать, в нижней части devise.rb.

Разговоры о токенах аутентификации заставляют меня думать об Oauth, который намного сложнее, чем вы думаете, но имеет преимущество в том, что он является своего рода стандартом. Если вам интересно этот маршрут, я бы проверил: https://github.com/nov/rack-oauth2

1 голос
/ 31 января 2012

Ответ таков: устройство не предназначено для этой цели.

...