2010-08-10 6 views
1

인증 시스템에 대해 authlogic을 구현했습니다. "사용자 이름"또는 "이메일"로 사용자를 로그인하는 방법이 있다면 나는 기대하고있었습니다. 여기에 제공된 솔루션 http://goo.gl/Ato1은 데이터베이스에 "로그인"필드가 없기 때문에 작동하지 않습니다."username"또는 "email"로 로그인하도록 authlogic을 구성하십시오.

그래서 DB에 "로그인"필드가 누락 되었습니까? 아니면 그것을 처리하는 다른 방법이 있습니까? 로그인 아이디 또는 이메일로 발생해야

...

+0

그래서 로그인을하지 않을 경우에서, 어디에서 오는지 데이터 베이스? –

+0

그냥 매개 변수! 그것의 모델에 있지 않습니다 ... – Madhusudhan

답변

8

당신이 시도해 봤어 :

class UserSession < Authlogic::Session::Base 
    find_by_login_method :find_by_username_or_email 
end 

및 user.rb에서

def self.find_by_username_or_email(login) 
    find_by_username(login) || find_by_email(login) 
end 

#note login is only the parameter name and does not refer to your model 
+0

그게 효과가 ...! 나는 거기에 로그인이 데이터베이스의 필드라고 생각하고 있었다. .. 고마워! – Madhusudhan

+1

사용자의 기본 계정 사용자 이름 입력란으로 login을 사용하는 인기있는 authlogic 자습서가 있습니다. 따라서 사용자가 연결 한 솔루션은 로그인이 논의되고 사용자 모델의 필드입니다. 어쩌면 혼란을 낳을 수도 있습니다 - 로그인으로 로그인하십시오 ... 내 답변에 매개 변수가되는 내 코멘트. http://github.com/binarylogic/authlogic_example – mark

관련 문제