登录会话验证

 public function store(Request $request)
    {
       $credentials = $this->validate($request, [
           'email' => 'required|email|max:255',
           'password' => 'required'
       ]);

       if (Auth::attempt($credentials)) {
           // 登录成功后的相关操作
       } else {
           // 登录失败后的相关操作
       }

       return;
    }

教程例子中验证完登录字段有效性之后,又进行账号密码比对Auth::attempt($credentials),我这里测试的$credentials,如果字段有效,返回的是一个null,再传到attempt中与数据库进行比对,等于传入了一个空值,例子真的没有问题吗?我这里在本地测试的报错如下:

Argument 1 passed to Illuminate\Auth\SessionGuard::attempt() must be of the type array, null given, called in E:\xampp\htdocs\weibo.im\vendor\laravel\framework\src\Illuminate\Auth\AuthManager.php on line 294 and defined
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 4

验证字段如果不通过,不会再往下执行,而是返回原来的页面并输出错误提示。

5年前 评论
        $credentials = $this->validate($request, [
           'email' => 'required|email|max:255',
           'password' => 'required'
       ]);

数据验证通过后,$credentials 不会是 null,是一个数组,里面对应是 email 及 password 对应的键值。
你可以打印出来看下 dd($credentials);

5年前 评论

验证通过后返回的不是null

5年前 评论

我也碰到了,原因是你用的5.1的laravel写5.5的代码 :joy:,我也是糊涂了,5.1的validate方法没有返回值,5.5的有,尴尬到死,找个地缝钻进去!难怪我npm run watch-poll一直报错!

5年前 评论

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