2010-02-17 8 views
0

비표준 인증 서비스를 사용하여 사용자가 spree에 로그인 할 수 있도록 허용해야합니다. 내 커뮤니티의 사용자는 모두 다른 3D 파티 서비스 계정을 가지고 있습니다. 이 서비스는 로그인과 암호를 사용하는 웹 서비스를 제공하고 성공하면 userId를 반환합니다. 관리자로서 사용자 프로필 정보를 쿼리 할 수 ​​있습니다.Authlogic을 사용하여 원격 서비스 인증

나는 사용자가 로그인을 시도 할 때 원격 서비스에 대한 자격 증명을 실행하고 성공할 경우 사용자 이름을 저장 한 다음 프로필 정보를 검색하여 db (이름, 주소 , 등 ...). 이것이 올바른 접근 방법입니까? 내가 어떻게 그걸 할거야?

답변

0

필자는 놀림을 사용하지는 않았지만 Authlogic (제목 줄에 나와있는대로)이 관련되어 있으면 Authlogic을 사용하여 로컬 데이터베이스에 대해 유효성을 검사하는 대신 사용자에게 유효성을 검사 할 수있는 고유 한 방법을 쓸 수 있습니다. 귀하의 사용자 모델에서 다음

class UserSession < Authlogic::Session::Base 
    verify_password_method :my_custom_auth_method 
    ... 

: 귀하의 사용자 세션 모델에서

당신이 당신의 자신의 방법 이외에 Authlogic의 유효성 검사를 사용하려면

def my_custom_auth_method(password_plaintext) 
    # user 'password_plaintext' and 'self.username' to validate 
    # against remote service returning true or false 
end 

, 당신은 내에서 valid_password?(password_plaintext)를 호출 할 수 있습니다 사용자 정의 verify_password_method.

이것이 의미하는 바가 확실하지 않지만 도움이되기를 바랍니다.