我正在尝试在多个简单的HTML / JavaScript应用程序中使用Laravel的身份验证功能。理想情况下,它应该是这样工作的:
1. 用户访问简单的HTML应用程序。 2. 简单的HTML应用程序包括一个PHP文件,检查用户是否经过身份验证。如果没有,则将用户发送到Laravel应用程序进行登录;如果已登录,则可以直接使用该应用程序。 3. 用户通过Laravel登录,并被重定向回HTML应用程序,此过程将重新开始。
我的问题在于检查PHP脚本中的用户是否已登录。Laravel的会话在那里不可用(通过session_start()和$_SESSION [“auth”] = true共享它只会将变量添加到Laravel版本的本机PHP会话中)。
以下是我在app/config/session.php中的设置。
您可能会想为什么我不直接将这个应用程序包含在Laravel框架中,这是因为这个简单的HTML应用程序有大约100个不同版本分散在10个域名上,目前每个域名都有自己(非常古老和不安全的)登录脚本(每次创建新域时都会复制)。因此,我希望使用Laravel集中管理一个数据库和一个管理系统来解决这个问题。
1. 用户访问简单的HTML应用程序。 2. 简单的HTML应用程序包括一个PHP文件,检查用户是否经过身份验证。如果没有,则将用户发送到Laravel应用程序进行登录;如果已登录,则可以直接使用该应用程序。 3. 用户通过Laravel登录,并被重定向回HTML应用程序,此过程将重新开始。
我的问题在于检查PHP脚本中的用户是否已登录。Laravel的会话在那里不可用(通过session_start()和$_SESSION [“auth”] = true共享它只会将变量添加到Laravel版本的本机PHP会话中)。
以下是我在app/config/session.php中的设置。
return array(
'driver' => 'native',
'lifetime' => 120,
'files' => storage_path().'/sessions',
'connection' => null,
'table' => 'sessions',
'lottery' => array(2, 100),
'cookie' => 'laravel_session',
'path' => null,
'domain' => null,
);
我将路径更改为null
,因为我希望在整个域上使用会话。
我的包含的PHP脚本非常简单,如下所示:
session_start();
if($_SESSION['authenticated']){
echo "logged_in";
} else {
header("Location: laravel/login/url");
}
您可能会想为什么我不直接将这个应用程序包含在Laravel框架中,这是因为这个简单的HTML应用程序有大约100个不同版本分散在10个域名上,目前每个域名都有自己(非常古老和不安全的)登录脚本(每次创建新域时都会复制)。因此,我希望使用Laravel集中管理一个数据库和一个管理系统来解决这个问题。
希望这里有人知道如何修复此问题或解决它(也许我应该在我的PHP脚本中尝试使用Laravel的会话包?)。