Auth::attempt($credentials)返回值为空

Models/User.php
Auth::attempt($credentials)返回值为空
Controllers/SessionsController.php

Auth::attempt($credentials)返回值为空

Controllers/UsersController.php
Auth::attempt($credentials)返回值为空

从上图可以得知,数据库的密码字段是user_pass,加密我也是用的bcryptauth.php中的设置也没有问题,但是尝试登陆始终说用户名或密码不正确(再三确认用户名和密码没有输错的情况下),于是我尝试输出Auth::attempt($credentials),结果如下图所示:

Auth::attempt($credentials)返回值为空
没有任何输出(红色警告框内应该要有返回值输出)。
数据库字段如下图所示:

Auth::attempt($credentials)返回值为空

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

已解决。
原因是我数据库中的字段名不是 password,需要在User模型中重写字段名
解决方案如下:

    public function getAuthPassword() {
        //这样数据库字段为 user_pass 也是可以认证的。
        return $this->user_pass;
    }

SessionCotroller.php中,

        $credentials = $this->validate($request, [
            'user_login' => 'required|max:50',
            'password' => 'required'
        ]);

方案来源:问答:使用 attempt 进行手动认证时,第一个参数中必须有 password 这个字...

一级引用来源:laracasts.com/discuss/channels/lar...

1年前 评论
讨论数量: 1

已解决。
原因是我数据库中的字段名不是 password,需要在User模型中重写字段名
解决方案如下:

    public function getAuthPassword() {
        //这样数据库字段为 user_pass 也是可以认证的。
        return $this->user_pass;
    }

SessionCotroller.php中,

        $credentials = $this->validate($request, [
            'user_login' => 'required|max:50',
            'password' => 'required'
        ]);

方案来源:问答:使用 attempt 进行手动认证时,第一个参数中必须有 password 这个字...

一级引用来源:laracasts.com/discuss/channels/lar...

1年前 评论

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