@Well_Done

Laravel как правильно поменять хэширование при аутентификации?

Здравствуйте!
Реализую небольшой проект. Решил делать на Laravel, заодно и изучать этот фреймворк.
Во многих вещах есть недопонимание еще.
БД с данными пользователей уже есть. Формат хранения пароля отличается от laravel. Нужен такой тип: md5(bin2hex(str))
Регистрация не требуется. А вот с логином проблема. Нашёл один из вариантов, поменял метод тут:
vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php

public function validateCredentials(UserContract $user, array $credentials)
    {
        $plain = $credentials['password'];

        if (md5(bin2hex($plain)) == $user->getAuthPassword()) {
            return true;
        } else {
            return false;
        }
        // return $this->hasher->check($plain, $user->getAuthPassword());
    }


Конечно сейчас работает, но на сколько известно менять файлы в папке /vendor/ нельзя.
Скажите, как можно правильно реализовать тоже самое, но без нарушений файлов фреймворка.
  • Вопрос задан
  • 203 просмотра
Пригласить эксперта
Ответы на вопрос 1
New_Horizons
@New_Horizons
Бред:
Возможно будет достаточно добавить свой хэшер, реализовать методы интерфейса:
use Illuminate\Contracts\Hashing\Hasher;
use Illuminate\Hashing\AbstractHasher;

class CustomHasher extends AbstractHasher implements Hasher
{}

потом зарегать его где-нибудь в сервис-провайдере:
app('hash')->extend('custom_hasher', function () {
	return new CustomHasher();
});

потом в файле конфига config/hashing.php изменить driver на custom_hasher

Ну типа того...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы