gpt4 book ai didi

使用 mongodb 重置 Laravel 密码

转载 作者:行者123 更新时间:2023-12-02 20:25:40 25 4
gpt4 key购买 nike

我正在将旧项目(在 zend 框架中完成)迁移到 laravel 5.5。数据库是mongo db。我正在使用laravel-mongodb连接 laravel 和 mongo。

我已经覆盖了 Laravel 登录功能,因为表字段与默认的 Laravel 字段不同。登录工作正常。

目前,当我尝试重置密码时,收到错误消息“我们找不到具有该电子邮件地址的用户”。如何覆盖重置密码功能?

在用户表中,字段名称为 usrEmail 和 usrPassword。下面给出了登录的工作代码。

目前,当我尝试重置密码时,收到错误消息我们找不到具有该电子邮件地址的用户。我如何覆盖重置密码功能?

在用户表中,字段名称为usrEmailusrPassword。下面给出登录的工作代码。

LoginController.php

protected function attemptLogin(Request $request)
{
$authUser = User::where('usrEmail', $request->email)
->whereIn('usrlId', [1, 2, 5, 6])
->first();

if($authUser) {
$password = md5(env('MD5_Key'). $request->password. $authUser->usrPasswordSalt);
$user = User::where('usrEmail', $request->email)
->where('usrPassword', $password)
->where('usrActive', '1')
->where('usrEmailConfirmed', '1')
->where('is_delete', 0)
->where('usrlId', 2)
->first();

if ($user) {
$updateLoginTime = User::find($user->_id);
$updateLoginTime->lastlogin = date('Y-m-d H:i:s');
$updateLoginTime->save();

$this->guard()->login($user, $request->has('remember'));
return true;
}
else {
return false;
}
}

return false;
}

最佳答案

尝试将其放入您的Auth/ResetsPasswordController.php

protected function credentials(Request $request)
{
$data = $request->only(
'password', 'password_confirmation', 'token'
);

$data['usrEmail'] = $request->get('email');

return $data;
}

默认情况下,->only( 还包括 email 字段,但由于它在您的数据库中不同,我们需要重写此函数,该函数是默认定义的在 ResetsPasswords 特征中。

这应该确保密码重置流程中的任何电子邮件字段(无论是请求电子邮件还是单击电子邮件链接后的表单)都将指向数据库中的正确字段。

关于使用 mongodb 重置 Laravel 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50602608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com