【发布时间】:2019-05-18 11:15:45
【问题描述】:
我正在尝试在通常的用户身份验证之上实施域范围的身份验证 (DWA)。用例是防止正在进行的网站泄露给 google/public。
- 使用
php artisan make:auth创建了脚手架代码 - 通过
/login登录并重定向到/home,显示默认You are logged in! - 当我重新加载
/home时,我看到SessionGuard.php中的$this->session->id有一个ID 值,我将其称为A,会话也有5 个attributes。 - 接下来,我将
auth中间件插入到路由/product/{id}并加载它 - 我看到
SessionGuard.php中的$this->session->id有一个全新的ID 为0attributes - 这会导致
Authenticate.php中间件中的authenticate()抛出Unauthenticated异常并将我重定向到/login - 当浏览器加载
/login时,SessionGuard.php中的$this->session->id现在显示A 的ID 和前面的5 个attributes -
/login导致RedirectIfAuthenticated.php中间件运行并重定向到/home - 由于 DWA,我无法加载
/product/{id},它只是不断将我重定向到/home
我的问题是,为什么#5 显示一个新的会话 ID 而不是 A? 这个 ID 最初是在哪里以及如何得出的?
谢谢!
【问题讨论】:
标签: laravel session authentication