Как настроить поле пароля в базовой аутентификации HTTP Laravel? - PullRequest
1 голос
/ 12 апреля 2019

Я хочу изменить поле password на user_password в запросе SQL, когда я использую соединение Базовая аутентификация HTTP .Промежуточное программное обеспечение, которое я использую, auth.basic относится к Laravel.Мне удалось изменить имя пользователя путем создания промежуточного программного обеспечения, но я не могу изменить поле пароля.

class CustomBasicAuth extends AuthenticateWithBasicAuth
{
    public function handle($request, Closure $next, $guard = null, $field = null)
    {
        $this->auth->guard($guard)->basic($field ?: 'user_username');

        return $next($request);
    }
}

Я провел некоторое исследование и увидел, что мы должны попытаться изменить этот метод.

/ vendor / laravel / framework / src / Illuminate / Auth / SessionGuard.php

class SessionGuard implements StatefulGuard, SupportsBasicAuth
{
    use GuardHelpers, Macroable;

    protected function basicCredentials(Request $request, $field)
    {
        return [$field => $request->getUser(), 'password' => $request->getPassword()];
    }
}

Кто-нибудь знает, как изменить его без изменения базового файла?

1 Ответ

2 голосов
/ 12 апреля 2019

Вы можете настроить внешние классы пакетов, просто расширив их и переопределив методы, которые необходимо изменить.Это может потребовать расширения нескольких классов, чтобы изменить места, где базовый класс вызывается, на ваш собственный.

...