讨论数量:
大略看了下源码,感觉可以在 App\Models\User
继承重写如下方法
/**
* Get the password for the user.
*
* @return string
*/
public function getAuthPassword()
{
return $this->password;
}
将 password
改成你要的字段,你试试有没有效果
\App\Http\Controllers\Auth\LoginController
加入如下
/**
* Validate the user login request.
*
* @param \Illuminate\Http\Request $request
* @return void
*
* @throws \Illuminate\Validation\ValidationException
*/
protected function validateLogin(Request $request)
{
$request->validate([
$this->username() => 'required|string',
'password_new' => 'required|string',
]);
}
/**
* Get the needed authorization credentials from the request. * * @param \Illuminate\Http\Request $request
* @return array
*/protected function credentials(Request $request)
{
return $request->only($this->username(), 'password_new');
}
这个问题可能是我用的是 8.0 + 版本导致的问题,目前我没没用 Auth::attempt ($credentials) 这个方法,用的是官方文档的其他认证方法,用户认证《Laravel 8 中文文档》, 流程是:先用账号查询出该条数据,验证密码没问题后用 Auth::login ($user); 登录,登录后的 session 和 Auth::attempt ($credentials) 结果一样,都完成了登录
推荐文章: