2017-01-31 8 views
1

내가 설정 한 필드를 작동하지 않습니다 Feathersjs. 서버에 페이로드를 보내려고 할 때마다 오류 만 수신됩니다. (401) Route :/auth/local - 잘못된 로그인입니다.지역 인증 암호 검증

내 질문은 비밀 번호 확인이 작동하는 방식입니다. 아무래도이 작업을 수행 할 수 없기 때문입니다.

암호는 데이터베이스 내부에 sha1로 저장되며 페이로드의 일부로 sha1 암호를 보냈습니다.

왜 직접 비교하지 않는 이유는 무엇입니까? 나는 혼란스러워.

답변

2

기본 해시 비교에서는 해시 (+ 소금) 문자열 (hashPassword 후크로 생성)이 필요합니다.

일반 SHA1 해시 암호를 사용하려는 경우 auth 1.0을 사용하고 custom verifier을 구현할 수 있습니다.

+0

그래서 현재 어제 생성 한 깃털 인증 모듈은 0.7.11 버전입니다. auth 1.0을 사용하기 위해 package.js 파일을 수동으로 업데이트해야합니까? – nevotheless

+0

아니요,'create' 전에'hashPassword' 훅을 사용해야합니다. 그렇지 않으면 유효하지 않은 비밀번호를 데이터베이스에 저장하게됩니다. – Daff

+0

@Daff : Btw, feathersjs가 비교할 필드를 알 수 있도록 json 구성 파일에서 passwordField를 어떻게 선언 할 수 있습니까? 내 패스워드는'User.services.password.bcrypt'에 저장되어 있습니다. – thelonglqd