Auth::login (); 在其他控制器获取不到用户信息?

LoginController.php

<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
    public function authenticate(Request $request)
    {
        $user = User::find(1);
        dump($user);
        Auth::login($user);
        dump(Auth::user());
    }
}

AdminController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;
use App\Models\Actives;
use App\Models\Registers;
use Auth;
use Excel;

class AdminController extends Controller
{
    public function actives()
    {
        $user = Auth::user();
        dump($user);
        $user = User::find(1);
        $actives = $user->actives;
        return view('actives',['actives'=>$actives]);
    }
}

没有使用php artisan make:auth
在Logincontroller登录时能打印出Auth::user(),但是在AdminController里面输出为null
有大佬知道怎么解决么

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

Auth::login()后 不要dump和dd任何东西 也不要 var_dump 用户实例
否则会导致sessionid不一致,从而导致新的请求无法获取认证用户
真的心累

5年前 评论
讨论数量: 8

Auth::login()后 不要dump和dd任何东西 也不要 var_dump 用户实例
否则会导致sessionid不一致,从而导致新的请求无法获取认证用户
真的心累

5年前 评论
leo

目测是没有把路由放到 web 中间件下

5年前 评论

@leo 不太理解什么意思 :joy: :joy:

5年前 评论

@leo
routes/web.php是这样的

file

5年前 评论

Auth::login()后 不要dump和dd任何东西 也不要 var_dump 用户实例
否则会导致sessionid不一致,从而导致新的请求无法获取认证用户
真的心累

5年前 评论

@else 我觉得你说的不对.你可以在登录后刷新 sesionid Session::regenerate(); 并不会影响用户的登录。我也不知道你说的这种情况是为什么,但是我发现 session()->getId() 这个值其实是不会变得。他对应的就就是当前用户的 session 文件

5年前 评论

@小龙 刚看了下

file

file

  • dump(Auth::user()) 导致响应里面没有set-cookie

file

file

5年前 评论

@else 你这次说的原因或许才对。但是我还是有个疑问,为什么在同一个路有中 dump(Auth::user()) 会没有 set-cookie?即使不打印,直接 Auth::user() 应该也是一样的效果吧?我没有测试。还有,我发现 session()->put(key,value) 的用法也有这个情况,你如果在一个路由中 put 赋值,会发现用户对应的 session 文件是没有这组键值对的,如果在一个路由中赋值后,再去请求,才会有这组键值对,而且也写入了文件

5年前 评论

因为你dd等方法提前返回给浏览器拉,然后session中间件的Terminable方法没有执行

3年前 评论

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