laravel8.5用自带的auth登录功能,默认验证的password密码字段,怎么修改

laravel8.5用自带的auth全选登录功能,默认验证的password密码字段,怎么修改

上面的方法是我在验证的模型里添加了网上找的,说是可以更改字段名称,但是我试了无效,仍然提示下面的错误

laravel8.5用自带的auth全选登录功能,默认验证的password密码字段,怎么修改

于是我试着跟随文件找到错误来源,并且修改了这个字段就好了

laravel8.5用自带的auth全选登录功能,默认验证的password密码字段,怎么修改
但是我不想去修改框架,不知道有没有大神知道怎么解决,在线求助

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 16

看样子可以把模型里加个password的attr获取方法,这个值返回你要用的那个字段值

2年前 评论
HinataiLiang (楼主) 2年前

大略看了下源码,感觉可以在 App\Models\User 继承重写如下方法

    /**
     * Get the password for the user.
     *
     * @return string
     */
    public function getAuthPassword()
    {
        return $this->password;
    }

password 改成你要的字段,你试试有没有效果

2年前 评论
HinataiLiang (楼主) 2年前
忆往昔弹指间 (作者) 2年前

刚去尝试了一下,亲测是可以更换成功的

file

file

file

2年前 评论
HinataiLiang (楼主) 2年前

我的auth.php
file 模型
file 登录

file

2年前 评论
忆往昔弹指间 2年前
HinataiLiang (作者) (楼主) 2年前

\App\Http\Controllers\Auth\LoginController

加入如下

    /**
     * Validate the user login request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return void
     *
     * @throws \Illuminate\Validation\ValidationException
     */
    protected function validateLogin(Request $request)
    {
        $request->validate([
            $this->username() => 'required|string',
            'password_new' => 'required|string',
        ]);
    }

    /**
 * Get the needed authorization credentials from the request. * * @param \Illuminate\Http\Request $request
  * @return array
 */protected function credentials(Request $request)
{
  return $request->only($this->username(), 'password_new');
}
2年前 评论
HinataiLiang (楼主) 2年前
Su 2年前

你怎么验证的密码?贴出来

2年前 评论

这个问题可能是我用的是8.0+版本导致的问题,目前我没没用Auth::attempt($credentials)这个方法,用的是官方文档的其他认证方法,用户认证《Laravel 8 中文文档》, 流程是:先用账号查询出该条数据,验证密码没问题后用 Auth::login($user);登录,登录后的session和Auth::attempt($credentials)结果一样,都完成了登录

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!