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

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

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

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

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

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

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 16

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

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

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

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

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

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

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

file

file

file

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

我的auth.php
file 模型
file 登录

file

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

\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');
}
3年前 评论
HinataiLiang (楼主) 3年前
Su 3年前

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

3年前 评论

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

3年前 评论

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