我有一個Rails 2.3.x應用程序,它根據Authlogic Github示例實現User模型中的act_as_authentic和UserSession模型。我正在實施一個API以允許從iPhone訪問。將通過https使用HTTP基本身份驗證(不會實現單個訪問令牌)。每個API調用都需要訪問的用戶名/密碼。使用Authlogic或authenticate_or_request_with_http_basic進行API調用的HTTP基本認證?
例如,我可以通過調用http://username:[email protected]:3000/books.xml來訪問API。如果使用單個訪問令牌,Authlogic將不會持續。但我使用的是HTTP Basic,我認爲Authlogic將爲API調用創建會話,而不是用於我的API方法。因此,對於我所做的每個API調用,都會創建新的會話對象。因此,在我看來,這會很快加載服務器資源。聽起來不是一個好主意。
另一種方法是對API控制器使用Rails authenticate_or_request_with_http_basic。添加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模型。但是這將涉及在應用程序中使用單獨的身份驗證代碼。
任何人有任何意見,可以分享他們的經驗?謝謝
感謝您的指針。 – 2010-04-24 02:14:56