Php 如何自定义Laravel HTTP基本身份验证中的密码字段?

Php 如何自定义Laravel HTTP基本身份验证中的密码字段?,php,laravel,laravel-5.8,laravel-authentication,Php,Laravel,Laravel 5.8,Laravel Authentication,使用连接时,我想将SQL请求中的密码字段更改为用户密码。我使用的中间件是特定于Laravel的auth.basic。我通过创建中间件成功地更改了用户名,但无法更改密码字段 class CustomBasicAuth扩展了AuthenticateWithBasicAuth { 公共函数句柄($request,Closure$next,$guard=null,$field=null) { $this->auth->guard($guard)->basic($field?:'user_username

使用连接时,我想将SQL请求中的
密码
字段更改为
用户密码
。我使用的中间件是特定于Laravel的
auth.basic
。我通过创建中间件成功地更改了用户名,但无法更改密码字段

class CustomBasicAuth扩展了AuthenticateWithBasicAuth
{
公共函数句柄($request,Closure$next,$guard=null,$field=null)
{
$this->auth->guard($guard)->basic($field?:'user_username');
返回$next($request);
}
}
我做了一些研究,我发现我们必须尝试并修改这个方法

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

类SessionGuard实现StatefulGuard,支持BasicAuth
{
使用护卫人员,可移动;
受保护的功能基本属性(请求$请求$字段)
{
返回[$field=>$request->getUser(),'password'=>$request->getPassword()];
}
}

有人知道如何在不修改基文件的情况下更改它吗?

只需扩展外部包类并覆盖需要更改的方法,就可以自定义外部包类。可能需要扩展多个类才能将基类调用的位置更改为自定义类。

您可以通过扩展外部包类并覆盖需要更改的方法来自定义外部包类。可能需要扩展多个类才能将基类调用更改为自定义调用。谢谢,您帮助我解决了这个问题。好的,如果其他人遇到同样的问题,我会将其作为答案发布:)更准确地说,我创建了一个扩展了SessionGuard的类,然后我添加了AppServiceProvider