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

马克西斯

这是一个“更新”。在我的项目的先前版本中,我们没有适当的密码散列。因此,我想使用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”中重写所有登录内容?(对不起,这是一个基本问题)

Djellal Mohamed Aniss

我建议您为您的案例创建一个中间件(例如,确保密码为我的示例),并且不将验证过程包括在控制器中,因为控制器通常包含与数据库或外部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);
 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章