ger*_*ude 4 authentication laravel
这是一个“ 更新 ”。在我的项目的先前版本中,我们没有适当的密码散列。因此,我想使用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
}
}
Run Code Online (Sandbox Code Playgroud)
那是正确的地方吗?我是否需要在“ else”中重写所有登录内容?(对不起,这是一个基本问题)
Dje*_*iss 11
我建议您为您的案例创建一个中间件(例如,确保密码为我的示例),并且不将验证过程包括在控制器中,因为控制器通常包含与数据库或外部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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |