问答 / 0 / 15 / 创建于 2年前 / 更新于 2年前
5.8
假如users表里面有两个密码,password,password_2,用户登录应该如何同时验证两个密码正确呢?Auth::attempt里面是不是只能指定password进行密码校验
能同时校验password,password_2。
查询用户名 查出来 两个密码 然后对比两个密码 如果有其中一个匹配 调用Auth::attempt 生成令牌
最简单的 自己写
参考这个 用户认证《Laravel 9 中文文档》
建议自已扩展一下,无痛, 改下配置文件即可切换。 自定义laravel用户验证
if (Auth::once($credentials) && Auth::attempt($credentials)) { // 登录成功 }
这个
Auth::once(['name'=>'xxx','password_2'=>'xxx'])
这样会报错,密码字段好像只能为password,目前是把两个密码自己对比是否一致,然后再登录
有没有可能你可以自己验证完再触发登录操作?
$user = User::find(1); // do something if ($user_password_has_passed && $second_password_has_passed) { auth()->guard($guard)->login($user); }
我是说可能啊 你可以自己去试试。
vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php
我要举报该,理由是:
查询用户名 查出来 两个密码 然后对比两个密码 如果有其中一个匹配 调用Auth::attempt 生成令牌