С началом работы пользователей в веб-клиенте появилась нужда изменять пароль пользователя на текущем клиенте, но стандаратных средств нет. Собственно изменить пароль не так и сложно - сложнее идентифицировать пользователя перед выполнением операции. Расшифровывать текущий хеш пароля (sha завернутое в base64) или шифровать его (у меня не получилось) тоже будет не самым оптимальным решением по соотношению затраченное время/полученный результат.
Предлагаю свой вариант алгоритма изменения пароля.
Предлагаю свой вариант алгоритма изменения пароля.
// Если хеш подтверждения пароля совпадает со старым хешем тогда изменяем пароль ПользовательИнформационнойБазы = ПользователиИнформационнойБазы.ТекущийПользователь(); ХешАвторизации = ПользовательИнформационнойБазы.СохраняемоеЗначениеПароля; ПользовательИнформационнойБазы.Пароль = Пароль; ПользовательИнформационнойБазы.Записать(); Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя()); ХешНовогоПароля = Пользователь.СохраняемоеЗначениеПароля; Если ХешНовогоПароля = ХешАвторизации Тогда ПользовательИнформационнойБазы.Пароль = НовыйПароль; ПользовательИнформационнойБазы.Записать(); Иначе ПользовательИнформационнойБазы.СохраняемоеЗначениеПароля = ХешАвторизации; ПользовательИнформационнойБазы.Записать(); КонецЕсли;
Скачать обработку
Комментариев нет:
Отправить комментарий