아래에 간단히 설명하면 인증을 시도 할 때 사용자가 성공적으로 가져 오지만 INVALID_PASSWORD
이 표시됩니다.sha-1 해시 된 암호를 사용하여 사용자를 firebase에 가져 오기
salt
및 passwordHash
여기서 {SSHA} 인증 스키마를 사용하여 LDAP 사용자 디렉토리 (apacheds)에서 가져옵니다.
var sha1Hex = require('sha1-hex');
var saltHex = Buffer.from("ktuF+dzYMQU=", 'base64').toString('hex');
var passwordHex = Buffer.from("demo", 'utf-8').toString('hex');
var hash = sha1Hex(Buffer.from(passwordHex + saltHex, 'hex'));
var hashBase64 = Buffer.from(hash, 'hex').toString('base64');
console.log(hashBase64);
중포 기지 CLM 가져 오기 명령 :
firebase auth:import users.json --hash-algo=SHA1 --rounds=80
users.json 파일 :
{
"users": [
{
"localId": "3c872eee-e86c-4b44-9840-bcebaac18f2c",
"email": "[email protected]",
"salt": "ktuF+dzYMQU=",
"passwordHash": "BuapoGGKIdfGprfMFjj3N9I7Ljg=",
"displayName": "Demo User",
}
]
}
나는 다음과 같은 JS를 실행하면 나는 passwordHash
은 내가 기대하고있어 수신 가져온 사용자와 함께 사용해야하는 자격 증명 :
아이디 : [email protected]
이
암호 : demo
중포 기지 웹 API를 로그인 명령 (INVALID_PASSWORD을 반환) :
firebase.auth().signInWithEmailAndPassword('[email protected]', demo);
나는 --rounds=80
매개 변수에 대한 확신 아니에요은 할 필요가 이상한 것 같다 sha1을 사용할 때 모두 지정됩니다. 또한 --rounds=0
으로 시도했습니다.
네, 그게 정확히 무슨 일 이죠. 'passwordHash = SHA1 (plainPassword + salt)'는 현재 사용중인 apache 시스템의 기본 동작입니다. 파머. – CMikeB1