У меня есть приложение Rails 2.3.x, которое реализует act_as_authentic в модели пользователя и модель UserSession в соответствии с примером Authlogic Github. Я реализую API для доступа к iPhone. Будет использоваться HTTP-проверка подлинности через https (не будет реализовывать токен с одним доступом). Для каждого вызова API требуется имя пользователя/пароль для доступа.HTTP-аутентификация с использованием Authlogic или authenticate_or_request_with_http_basic для вызова API?
Я могу получить доступ к API, позвонив по телефону http://username:[email protected]: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 и просто использовать модель пользователя. Но это потребует использования отдельных кодов аутентификации в приложении.
У кого есть есть комментарии и могут поделиться своим опытом? Спасибо
Спасибо за указатель. –