rails-аутентификация api по токену заголовка
Я хотел бы работать с rails-api gem special для создания приложения только для API. Для обеспечения механизма аутентификации я хочу использовать встроенный authenticate_or_request_with_http_token метод, описанный в Railscasts #352, но этот метод здесь отсутствует.
У кого-нибудь есть опыт работы с on rails-api камень?
P. S. Я вижу этот подход, но готова ли эта продукция?
2 ответов
Я нахожусь в процессе разработки сервиса с использованием rails-api. Мы еще не развернуты, но приближаемся к этому времени, и у нас не было никаких проблем при тестировании. Вам нужно включить любые несущественные модули, которые вы хотите использовать, так как rails-api обрезается прямо вниз. Я использую authenticate_or_request_with_http_token в ApplicationController следующим образом:
include ActionController::HttpAuthentication::Token::ControllerMethods
def authenticate
authenticate_or_request_with_http_token do |token, options|
apiKey = ApiKey.where(auth_token: token).first
@current_user = apiKey.user if apiKey
end
end
Если вы просто хотите токен, есть удобный метод token_and_options:
include ActionController::HttpAuthentication::Token
def current_user
api_key = ApiKey.where(auth_token: token_and_options(request)).first
User.find(api_key.user_id) if api_key
end
с README:
Basic, Digest и Token Authentication: Rails поставляется с поддержкой из коробки для трех видов аутентификации HTTP.
Итак, да, это производство готово (это все-таки рельсы). Пример, на который вы ссылаетесь, - это путь (трюк состоит в том, чтобы включить только то, что вам нужно из пакета действий).