2010-02-02 8 views
5

Authlogic에서 암호 형식의 유효성을 검사하도록하는 방법이 있습니까? 예를 들어 적어도 하나의 문자와 하나 이상의 숫자가 있어야합니다. acts_as_authentic 구성 블록에서 사용되는 validates_format_of_password_options 방법을 생략하면 Authlogic이 사용자에게 이러한 제한을 부과해서는 안된다는 의견이 있음을 나타냅니다.Authlogic에서 유효성 검사 암호 형식

나는 보통의 ActiveRecord를 넣을 것이라고 생각했지만 이것은 평범한 암호를 검색 할 수 없기 때문에 내가 만든 current_user 객체가 본질적으로 유효하지 않다는 것을 의미한다. 내가 할 수 있으면!). 내 current_user이 유효하지 않음을 감지하면 Rails 또는 Authlogic (어느 쪽인지는 알지 못하기 때문에 양쪽 모두에 대해 처음 사용하기 때문에) 사용자의 'edit user'페이지로 패스워드의 유효성 검사 오류로 안내합니다.

답변

2

당신과 같이 acts_as_authentic에 의해 주어진 구성 옵션을 사용할 수 있습니다 : 당신이 보석의 모듈에 가면

# Configuration is easy: 
    # 
    # acts_as_authentic do |c| 
    #  c.my_configuration_option = my_value 
    # end 
    # 
    # See the various sub modules for the configuration they provide. 

당신이 그들이 제공하는 추가 옵션을 볼 수 있습니다. 예를 들어 나는 암호의 길이 검증의 기본 옵션을 변경하려면 : 더 많은 옵션에 대한

acts_as_authentic do |c| 
c.merge_validates_length_of_password_field_options({:minimum => 3}) 
end 

당신은 당신의 acts_as_authentic 폴더 안에 볼 수있다 "(보석 || 플러그인)/authlogic/acts_as_authentic /"디렉토리를. 건배!

+1

난 이미 내 config 블록에'merge_validates_length_of_password_field_options'를 않고 예상대로 작동합니다. 내 문제는 로그인 필드와 전자 메일 필드에 대한 비밀번호 필드 형식과 유사한 방법이 존재하지 않는다는 것입니다. – hynkle

+0

당신은 항상 그것을 monkeypatch 할 수 있습니다. :-) – westoque

+0

그냥 패치를 붙였습니다. 완벽하게 작동합니다. – hynkle

7

은 원숭이 패치가 필요하지 않지만 이후의 Authlogic 변경 사항과 관련되지 않습니다.

validates_format_of : password : with =>/^ (? =. \ d) (? =. ([az] | [AZ])) ([\ x20- \ x7E]) {6,40} $ /, : if => : require_password ?, : message => "하나의 숫자와 문자를 포함해야하며 6 자에서 40 자 사이 여야합니다"

물론 귀하의 필요에 맞는 스위트 룸을 찾으십시오.

+0

나를 위해 완벽하게 일했습니다! , '/^(?=.*\d)(?=.*([az]|[AZ]))([\x20-\x7E]){6 : – dalyons

+1

실제로, 나는 약간 변경했다 } $ /' – dalyons