我想使用我用comand php artisan make:auth获得的表password_resets,但是这个表使用“email”,这不对,因为如果我的用户在他们的个人资料中更改了他们的电子邮件,那么就是一个问题。识别它们,我想使用“ password_resets ”表中的“ idUser ”而不是“电子邮件”。
我在哪里可以更改代码????
答案 0 :(得分:0)
当您的用户尝试重置电子邮件时,他必须提供重置电子邮件,如果他/她更改了配置文件中的电子邮件,新电子邮件将自动更新用户表或其他你有权利?因此,如果他/她真的打算重置密码,用户将提供更新的电子邮件。因此,最新的电子邮件将用于密码重置,并且电子邮件的更新应该不是问题。 :):)
答案 1 :(得分:0)
谢谢你的回答, 最后我解决了这个问题:
Dirección:... vendor / laravel / .... DatabaseTokenRepository.php
/**
* Create a new token record.
*
* @param \Illuminate\Contracts\Auth\CanResetPassword $user
* @return string
*/
public function create(CanResetPasswordContract $user)
{
$email = $user->getEmailForPasswordReset();
$idUser = $user->idUser; //Aquí he añadido el idUser
$this->deleteExisting($user);
// We will create a new, random token for the user so that we can e-mail them
// a safe link to the password reset form. Then we will insert a record in
// the database so that we can verify the token within the actual reset.
$token = $this->createNewToken();
$this->getTable()->insert($this->getPayload($idUser, $email, $token)); //Aquí he añadido el idUser
return $token;
}
/**
* Delete all existing reset tokens from the database.
*
* @param \Illuminate\Contracts\Auth\CanResetPassword $user
* @return int
*/
protected function deleteExisting(CanResetPasswordContract $user)
{
return $this->getTable()->where('idUser', $user->idUser)->delete();
}