У меня есть приложение Rails 2.3.x, которое реализует act_as_authentic в модели User и модели UserSession в соответствии с примером Authlogic Github. Я реализую API, чтобы разрешить доступ с iPhone. Будет использоваться HTTP Basic аутентификация через https (не будет реализован токен единого доступа). Для каждого вызова API требуется имя пользователя / пароль для доступа.
Я могу получить доступ к API, например, по телефону http://username:password@localhost:3000/books.xml. Authlogic не будет сохраняться, если используется один токен доступа. Но я использую HTTP Basic, который, я думаю, Authlogic создаст сеанс для вызовов API, который не используется для моих методов API. Таким образом, для каждого вызова API, который я сделал, создается новый объект сеанса. Таким образом, мне кажется, что это довольно быстро загрузит ресурс сервера. Звучит как плохая идея.
Альтернативой является использование Rails authenticate_or_request_with_http_basic для контроллеров API. Пример добавления before_filter:
def require_http_auth_user
authenticate_or_request_with_http_basic do |username, password|
if @current_user = User.find_by_email(username)
@current_user.valid_password?(password)
else
false
end
end
end
Это обойдёт Authlogic UserSession и просто использует модель User. Но это будет включать использование отдельных кодов аутентификации в приложении.
Кто-нибудь имеет какие-либо комментарии и может поделиться своим опытом? Спасибо