gpt4 book ai didi

laravel - 新的密码散列 - 在登录尝试时将用户重定向到密码重置

转载 作者:行者123 更新时间:2023-12-04 22:26:49 25 4
gpt4 key购买 nike

这是一个“update ” 在我项目的以前版本中,我们没有对密码进行任何适当的散列。所以我想使用 Laravel 的哈希,并邀请用户创建一个新密码。

我的用户表中有一个新的密码列。如果用户尝试登录时,新密码不存在(空列),我们会自动执行“重置密码”。我想知道在哪里做这个验证:

class LoginController extends Controller
{
public function login(Request $request)
{
//check if the user has an empty password
//if yes
redirect('/password/reset');

//else
//use normal login function
}
}

那是正确的地方吗?我是否需要在“else”中重写所有登录内容? (对不起,这是一个基本问题)

最佳答案

我建议您为您的案例创建一个中间件(以 EnsurePasswordIsAdded 为例),并且不要在 Controller 中包含验证过程,因为 Controller 通常包含与数据库或外部 API 交互以向用户提供响应的函数这对您来说并非如此,您只是在过滤/验证请求。

这是关于 Laravel 中间件的文档链接:

https://laravel.com/docs/5.8/middleware

这是一个代码建议:

 public function handle($request, Closure $next)
{
if ( !User::find($request->email)->hasPassword() ) {
return redirect('password-reset')->with('email',$request->email);
}
return $next($request);
}

关于laravel - 新的密码散列 - 在登录尝试时将用户重定向到密码重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56737222/

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