这是一个“更新”。在我的项目的先前版本中,我们没有适当的密码散列。因此,我想使用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”中重写所有登录内容?(对不起,这是一个基本问题)
我建议您为您的案例创建一个中间件(例如,确保密码为我的示例),并且不将验证过程包括在控制器中,因为控制器通常包含与数据库或外部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] 删除。
我来说两句