2010-04-23 4 views
1

저는 Authlogic Github 예제에 따라 User 모델에서 act_as_authentic을 구현하고 UserSession 모델을 구현하는 Rails 2.3.x 앱을 보유하고 있습니다. iPhone에서 액세스 할 수 있도록 API를 구현 중입니다. https를 통한 HTTP 기본 인증을 사용합니다 (단일 액세스 토큰을 구현하지 않음). 각 API 호출에는 액세스에 필요한 사용자 이름/비밀번호가 필요합니다.HTTP API 호출에 Authlogic 또는 authenticate_or_request_with_http_basic을 사용하는 HTTP 기본 인증?

예를 들어 http://username:[email protected]:3000/books.xml을 호출하여 API에 액세스 할 수 있습니다. 단일 액세스 토큰을 사용하는 경우 Authlogic이 지속되지 않습니다. 하지만 Authlogic이 API 호출에 대한 세션을 만들 것이라고 생각하는 HTTP Basic을 사용하고 있습니다.이 API 호출은 API 메소드에 사용되지 않습니다. 그래서 내가 만든 각 API 호출마다 새 세션 객체가 만들어집니다. 따라서 이것은 서버 리소스를 꽤 빨리로드하는 것으로 보입니다. 나쁜 생각 같아.

대신 API 컨트롤러에 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을 우회하고 사용자 모델 만 사용합니다. 그러나 여기에는 앱에서 별도의 인증 코드를 사용하는 것이 포함됩니다.

누구나 의견이 있으며 경험을 공유 할 수 있습니까? 감사합니다

답변