/BitrixPasswordHasher

Авторизация в django пользователей, импортированных из CMS "Битрикс"

Primary LanguagePythonMIT LicenseMIT

BitrixPasswordHasher

Авторизация в django пользователей, импортированных из CMS "Битрикс"

Если пользователи были импортированы из битрикса, то они смогут авторизоваться со своими старыми паролями, если в django настроить дополнительный хешер

Предварительные действия

Чтобы django могла определить алгоритм хеширования необходимо подготвить пароли в БД

update 
    auth_user 
set 
    password = concat('bitrix$', password) 
where 
    id <> 1

в данном случае исключили суперпользователя, поскольку он скорее всего был создан при инициализации django-проекта

Настройка django

В файле settings.py необходимо указать набор используемых хешеров

INSTALLED_APPS = [
    ...
    'myapp.users'
]

PASSWORD_HASHERS = [
    'django.contrib.auth.hashers.PBKDF2PasswordHasher',
    'myapp.users.hashers.BitrixPasswordHasher',
]

Первая запись этого списка будет использоваться для сохранения паролей, а все остальные записи являются средствами, которые могут быть применены для проверки существующих паролей.

Таким образом импортированные пользователи смогут авторизоваться под битриксовским паролем, а при смене пароль будет хеширован по первому алгоритму из списка.