Laravel,访客和用户的公共页面,会话表 user_id null

Posted

技术标签:

【中文标题】Laravel,访客和用户的公共页面,会话表 user_id null【英文标题】:Laravel, common page for guest and user, session table user_id null 【发布时间】:2021-06-14 13:58:23 【问题描述】:

在会话表中,用户访问访客页面时,用户id为空。

Route::get('/', [HomeController::class, 'index',])->name('home');

Route::group(['middleware' => ['auth:user']], function () 

    Route::get('/dashboard', [HomeController::class, 'dashboard'])->name('dashboard');

);

当用户访问仪表板时,会话表具有用户 ID,并且同一用户进入主页用户 ID 现在在会话表中设置为 null。

【问题讨论】:

您是否手动将会话数据保存到表中?如果是的话,你为什么不使用 Laravel 内置的会话辅助函数来实现你想做的事情呢? 我正在使用 laravel 的默认会话助手。 【参考方案1】:

也许这会有所帮助

Route::middleware('auth')->group(function () 
    Route::get('/dashboard', [HomeController::class, 'dashboard'])->name('dashboard');
);

【讨论】:

问题是主页而不是仪表板,主页适用于用户和访客。 从你的代码看,说首页不需要认证。因此用户和访客都可以访问主页。也许你需要@auth user activity @endauth@guest guest activity @endguest 参考:laravel.com/docs/8.x/blade#authentication-directives 这不是关于刀片的,而是关于会话表的。

以上是关于Laravel,访客和用户的公共页面,会话表 user_id null的主要内容,如果未能解决你的问题,请参考以下文章

如何将所有访客请求重定向到 Laravel 应用程序中的登录页面?

如何在 laravel 的公共目录中使用会话

Laravel 会话随机过期

在 SPA 中对访客/匿名用户进行身份验证

如何在 Laravel 中仅向访客用户显示或隐藏我的表的一部分?

如何将客人重定向到登录页面,在laravel 5.2登录后重定向回来[关闭]