问答 / 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)) { // 登录成功 }Copy
if (Auth::once($credentials) && Auth::attempt($credentials)) { // 登录成功 }
这个
Auth::once(['name'=>'xxx','password_2'=>'xxx'])Copy
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); } Copy
$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
我要举报该,理由是:
推荐文章: