#firebase #firebase-authentication
#firebase #firebase-аутентификация
Вопрос:
Я пытаюсь перенести пользователей (используя firebase-admin@8.13.0 ) в firebase auth, следуя этому руководству: https://firebase.google.com/docs/auth/admin/import-users#import_users_with_md5_sha_and_pbkdf_hashed_passwords
В старой системе пароли хэшировались в php:
$Password = hash('sha256', $Password);
Я запускаю этот код для импорта пользователей в firebase:
const res = await admin.auth().importUsers([{
uid: 'ABC123',
email: 'tester@test.com',
passwordHash: Buffer.from('5457ae6b180556bc65b423ba3a36124ec44f6cbec7da84e483daa2a46dec3f97')
}], {
hash: {
algorithm: 'SHA256',
rounds: 1
}
});
Импорт завершается успешно, но я не могу войти в систему, используя тот же пароль (LeeT1337).
Также, когда я экспортирую всех пользователей, запускаю
firebase auth:export auth-export.json --format json
импортированный пользователь, в отличие от всех остальных, не имеет passwordHash
свойства.
Я также сначала попробовал кодирование хэша в base64 (поскольку это предлагается в старых сообщениях стека, но больше не в документах).
Альтернативно, я попытался импортировать через cli (firebase-tools@8.13.1 ) с:
{
"users": [
{
"localId": "ABC123",
"email": "tester@test.com",
"passwordHash": "NTQ1N2FlNmIxODA1NTZiYzY1YjQyM2JhM2EzNjEyNGVjNDRmNmNiZWM3ZGE4NGU0ODNkYWEyYTQ2ZGVjM2Y5Nw=="
}
]
}
и
firebase auth:import users-for-import.json --hash-algo=SHA256 --rounds=1
но получил тот же результат: импорт работает, вход в систему — нет.
Ответ №1:
Buffer.from('5457ae6b180556bc65b423ba3a36124ec44f6cbec7da84e483daa2a46dec3f97')
необходимо изменить на
Buffer.from('5457ae6b180556bc65b423ba3a36124ec44f6cbec7da84e483daa2a46dec3f97', 'hex')