laravel10Auth认证通过但是Auth::user()返回null

1. 运行环境 php8.2.9 使用php artisan serve

1). 当前使用的 Laravel 版本?laravel10

2). 当前使用的 php/php-fpm 版本?php8.2.9

PHP 版本:8.2.9

php-fpm 版本:

3). 当前系统 Windows 10

4). 业务环境 生产环境

5). 相关软件版本 phpstorm

2. 问题描述?

laravel10Auth认证通过但是Auth::user()返回null
我在认证里面使用dd(Auth::user())可以拿到我登陆的用户信息,但是我跳转后获取到的是null
并且session存储的文件里我发现他生成的 login_web_xxxxxxx是null
我也试过使用Auth::login将user模型传入,但是他还是没法获取到,使用Auth::check结果也是没有登录成功,
我在storage/laravel.log文件里也没有发现报错信息

3. 您期望得到的结果?

我需要能够通过认证且能够获取到正确数据
//: <> (能截图就截图。)

4. 您实际得到的结果?

我需要能够通过认证且能够获取到正确数据
//: <> (有报错信息的话把堆栈信息提供出来)

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 12

这个问题我猜不出来,请提供更丰富的信息。

1年前 评论
zhangsanye111 (楼主) 1年前

仔细看 laravel10 - 用户认证文档

如果身份验证成功,你应该重新生成用户的 session 以防止 session fixation:

        if (Auth::attempt($credentials)) {
            $request->session()->regenerate();

            return redirect()->intended('dashboard');
        }
1年前 评论
zhangsanye111 (楼主) 1年前
kwok_wah (作者) 1年前

可以检查一下是否加载了web的中间件,然后可以先返回空 return ''; 尝试让cookie生效试试~

1年前 评论
zhangsanye111 (楼主) 1年前
33qis 1年前

我也遇到同样问题了,有解决办法吗

1年前 评论

Auth::user()的获得必须要加中间件验证,你跳转可以当做一个新的请求,和跳转前的请求没有关联。 也就是说你即使登陆了,你在网站首页的请求中一样拿不到Auth::user(),你只有在有身份验证的路由中才能拿到Auth::user()

1年前 评论

guard是不是同一个

1年前 评论

laravel全局中间那里看看有没有启用session中间件

1年前 评论

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