2017-12-21 21 views
0

장치를 사용하여 레일을 사용합니다. 사용자 테이블에는 전자 메일과 record_status 필드가 있습니다. 레코드 상태에 '활성'또는 '삭제됨'이 포함됩니다.레일 전자 메일 및 다른 필드로 인증 확인

전자 메일 및 record_status = '활성'을 사용하여 인증을 변경하려면 어떻게해야합니까?

이 코드는 제 위치에 있습니다. 도움말 사람

답변

1

에 대한

config.case_insensitive_keys = [:email] 

감사 devise.rb 내 이니셜 내 사용자 모델

def self.find_for_database_authentication(warden_conditions) 
    status = 'active' 
    where(:email => warden_conditions[:email], :record_status => warden_conditions[:status]).first 
end 

에서

는 파일 경로 ruffly에 config/initializers/devise.rb이다 수립을위한 초기화가 37 번 라인을 보셔야합니다

# config.authentication_keys = [:email] 

지금이 사용자를 인증 할 때 키가 사용되는 모든 인증 메커니즘 구성에 대한

config.authentication_keys = [:email, :other_field] 

구성으로 업데이트 할 수 있습니다. 기본값은 just : email입니다. [: username, : subdomain]을 사용하도록 구성 할 수 있으므로 사용자를 인증하려면 두 매개 변수가 모두 필요합니다. 해당 매개 변수는 인증 할 때만 사용되며 세션에서 검색 할 때 사용되지 않습니다. 권한이 필요한 경우이를 이전 필터에 구현해야합니다. 값이 존재하지 않을 때 인증을 취소할지 여부를 결정하는 부울 값인 해시를 제공 할 수도 있습니다.