我正在使用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应用程序中,它们是否共享同一个数据库?
所以我无法将第一个项目会话集成到后者,但找到了一个带有$_SESSION
变量的替代方案:
如果你想让这个变量为两个项目工作,你必须在两个项目的public/index.php上设置session_start();
。
<?php
session_start();
之后,你可以在每个控制器上使用$_SESSION变量,这将显示在你服务器上的任何PHP web应用程序上,我想使用传统的laravel方式,但没有成功,也没有太多关于这个要求的信息,所以这里有另一种选择。
您可以在任何控制器、视图或中间件中使用这样的变量:
$_SESSION["setyourvarname"]="your value";
然后在控制器、视图或中间件上,您可以只使用
$myvariable = $_SESSION["myvarname"]