Мы переносим пользователей в Firebase Auth из внешней базы данных, используя хэшированный с помощью SHA256 пароль.
В настоящее время мы пытаемся from firebase_admin import auth
импортировать пользователей.Мы можем импортировать пример пользователя, но не можем войти с ним (неверный пароль).
Вот минимальные фрагменты кода для воспроизведения проблемы.
- Мы используем пользователя в качестве примера
- Мы используем sha256 для хеширования пароля
- Запуск
import_users_to_firebase()
- Попробуйте войти с примеромпользователь -> неверный пароль
`
def hash_password(raw_password):
import base64
import hashlib
algo = hashlib.sha256()
algo.update(raw_password)
return base64.b64encode(algo.digest())
def create_mock_user_data():
email = 'test@example.com'
password = 'test@example.com'
password_hash = hash_password(password)
print 'password_hash: {}'.format(password_hash)
return email, password_hash
def import_users_to_firebase():
mock_email, mock_password_hash = create_mock_user_data()
users = [
auth.ImportUserRecord(
uid='someuid',
display_name='Test example',
email=mock_email,
email_verified=False,
password_hash=b'{}'.format(mock_password_hash),
),
# users list can contain up to 1000 records
]
hash_alg = auth.UserImportHash.sha256(rounds=0)
result = auth.import_users(users, hash_alg=hash_alg)
print('Successfully imported {0} users. Failed to import {1} users.'.format(
result.success_count, result.failure_count))
for err in result.errors:
print('Failed to import {0} due to {1}'.format(
users[err.index].uid, err.reason))
`
Я что-то здесь упускаю или что-то неправильно понимаю?
Есть ли способ проверить, правильно ли импортирован password_hash?Или есть способ, которым я могу сконфигурировать, какой алгоритм хэширования использует Firebase, чтобы импортированный пароль совпадал с примером входа пользователя?