【问题标题】:Laravel Auth::attempt() on custom field namesLaravel Auth::attempt() 自定义字段名称
【发布时间】:2020-09-09 06:43:52
【问题描述】:
我有两个密码字段password 和master_password。我可以使用Auth()->guard('appusers')->attempt($data) 使用password 字段登录用户,其中 $data 如下所示。
$data = [
'username' => $username,
'password' => $password
];
但我无法通过master_password 登录用户。我的方法应该是什么?
【问题讨论】:
标签:
laravel
authentication
laravel-authentication
【解决方案1】:
我建议继续使用 Laravel 默认的身份验证。您需要在您的 LoginController 中覆盖 credentials 特征中的 credentials 方法。例如:
/**
* Get the needed authorization credentials from the request.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
protected function credentials(Request $request)
{
$passwordOrMasterPassword = $request->has('master_password') ?
$request->master_password :
$request->password;
return [
'email' => $request->input('username'),
'password' => $passwordOrMasterPassword,
];
}
您可以随意使用此方法中的数据。