拉拉维尔身份验证和"subdomains"



我正在使用Laravel 5x,我正在尝试让用户从(例如(:登录

https://dev.example.com/example_authentication/public/login(这是laravel的一个例子(

然后当我访问时:

https://dev.example.com/mysecondwebsite/public(这是laravel的另一个例子(我可以调用:

$user = Auth::user();

然后获取是否是用户、管理员、名称等

我所尝试的是在example_authentication的.env文件和mysecondwebsite 上添加两者

SESSION_DOMAIN='.example.com'

但是会话不会持续。

知道发生了什么事吗?

更新:

我在第二个laravel应用上使用

$user = Auth::user();

出于某种原因,它正在生成自己的会话,记录在案的是,这两个实例都有相同的:

'cookie' => 'vanguard_session'
the same APP_KEY
the same SESSION_DRIVER
默认情况下,Laravel使用基于文件的会话存储。为此,您可能需要查看数据库会话存储或其他内容:https://laravel.com/docs/5.8/session#configuration

此外,为了实现这一点,用户需要存在于两个Laravel应用程序中,它们是否共享同一个数据库?

所以我无法将第一个项目会话集成到后者,但找到了一个带有$_SESSION变量的替代方案:

如果你想让这个变量为两个项目工作,你必须在两个项目的public/index.php上设置session_start();

<?php
session_start();

之后,你可以在每个控制器上使用$_SESSION变量,这将显示在你服务器上的任何PHP web应用程序上,我想使用传统的laravel方式,但没有成功,也没有太多关于这个要求的信息,所以这里有另一种选择。

您可以在任何控制器、视图或中间件中使用这样的变量:

$_SESSION["setyourvarname"]="your value";

然后在控制器、视图或中间件上,您可以只使用

$myvariable = $_SESSION["myvarname"]

最新更新