Я хочу изменить поле 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()];
}
}
Кто-нибудь знает, как изменить его, не изменяя базовый файл?