gpt4 book ai didi

php - Laravel 子域 : single auth across all subs not working?

转载 作者:行者123 更新时间:2023-12-03 11:22:54 26 4
gpt4 key购买 nike

我正在构建一个具有动态子域系统的站点,例如 (name.domain.com)。我将 Ubuntu 与 laravel 的 serve 命令一起使用。
我在我的 route 设置了所有内容:

Route::domain('{x}.localhost')->group(function (){
Route::get('/url/', 'SomeController@someAction')->middleware('can:xyz,x')->name('someName');
});
现在,一切都很好,除了 Auth 被子域锁定
eg(xyz.localhost:8000/, localhost:8000/) 需要单独登录。
在我阅读了一些谷歌搜索之后,我可以在“域”下的 config/session.php 文件中覆盖它。因此,在我的 .env 文件中,我为 SESSION_DOMAIN 设置了一个新变量并将其指向“.localhost”或“.localhost:800”或仅用于测试我得到的 IP 127.0.0.1/:8000 与建议相同,但是当我尝试在登录后立即登录我的 session 无效,例如(我登录并重定向到正确的路线,但我的身份验证发现我没有登录)
session 配置
'domain' => env('SESSION_DOMAIN', null),
我的 .env
SESSION_DOMAIN=.localhost
似乎出于某种原因没有设置 cookie?
可能应该注意到这是同时使用文件和数据库进行 session 的情况,我还每次都清除了缓存和 session 存储以及 cookie 等。
- 在过去的几天里,我已经尝试了所有我能想到的方法来解决这个问题,但没有运气。即使在全新安装的 laravel 上也存在同样的问题。
我可以在主 URL 上使用 FF 登录,但在子 URL 上我没有登录,如果我尝试,我会得到 419。
有什么建议?亲切的问候,马特
-编辑
要在新安装的 laravel 上重现,首先,安装 auth 包:
composer require laravel/ui

php artisan ui vue --auth
npm run dev
接下来,使用您的 Mysql 数据库信息编辑您的 .env 文件,并将此行添加到文件中:
SESSION_DOMAIN=.localhost
最后将其添加到您的 web.php 路由文件中。
Route::domain('{foobar}.localhost')->group(function (){
Route::get('/test/', 'HomeController@index');
});
(我喜欢在命令行中在这里创建一个帐户)
然后推送默认迁移并通过登录主页和任何子域来运行服务器和测试。

最佳答案

好吧,这是因为 localhost 域,而是使用诸如 something.test 之类的虚拟域,然后设置 SESSION_DOMAIN=.something.test 并清除缓存。 localhost 和 127.0.0.1 不是同一来源,因此无法设置 session 。

关于php - Laravel 子域 : single auth across all subs not working?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62284200/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com