2009-10-22 6 views
3

"authenticate_ with_ http_base"를 사용하고 싶지만 그저 가져올 수 없습니다. .Authlogic - 기본 HTTP 인증을 통한 인증

내 RoR 앱에서 Authlogic이 정상적으로 작동하며 사용자 세션을 사용하고 있습니다. 그 방법을 그대로 유지하면서 authenticate_with_http_basic.I을 사용해야합니다. 아이폰 SDK 앱이 있는데 이제는 내 웹 앱에서 일부 제품을 가져 와서 목록으로 표시해야합니다. 그래서 나는 내 webapp에 요청을 보내야한다고 가정하고있다. http://username:[email protected]/products/

제 질문은이 사용자 이름과 암호를 확인하고 UserSession Controller에 필요한 작업을 확인하는 것입니다.

답변

5

UserSessionController은 컨트롤러가 로그인 양식 제출 및 로그 아웃 만 처리하기 때문에 아무 것도 할 필요가 없습니다.

Authlogic 및 authenticate_with_http_basic은 서로 관련이 없습니다. HTTP 기본을 통해 인증하려면 Rails에서 제공하는 메서드를 사용하여 인증 할 메서드를 만들고 그 메서드를 before_filter에두면됩니다. HTTP 인증을 통해 로그인하면 모든 요청에 ​​대해 사용자 이름과 비밀번호가 필수적이라고 가정합니다.

그래서 마지막으로, ProductsController 지금 AuthLogic에 통합 HTTP 인증을 통해이

class ProductsController < ApplicationController 
    before_filter :authenticate_via_http_basic 

    # In case you have some method to redirect user to login page, skip it 
    skip_before_filter :require_authentication 

    ... 

    protected 

    def authenticate_via_http_basic 
    unless current_user 
     authenticate_with_http_basic do |username, password| 
     if user = User.find_by_username(username) 
      user.valid_password?(password) 
     else 
      false 
     end 
     end 
    end 
    end 
+0

안녕하세요, 현재 작동 중입니다. 하지만 http_basic_athentication을 컨트롤러에 통합 한 후 UserSession 기반 인증이 작동하지 않습니다. 나는 항상 http_basic_athentication 로그인 프롬프트를 얻는다. – randika

+0

늦게 응답하여 죄송합니다. 나는 대답을 업데이트했다 : – sikachu

1

인증과 같은 것, 그것은 기본적으로 활성화되어 있습니다.

+0

나는이 방법을 authenticate_with_http_basic (& block) 문서의 메서드 목록에서 보지만, 나는 그것을 사용하는 방법을 알아낼 수가 없다. Sikachu가 제공 한 솔루션 대 HTTP 인증을 통한 통합 인증을 사용하는 솔루션은 무엇이겠습니까? –