【发布时间】:2014-01-24 22:41:59
【问题描述】:
我正在尝试将 Laravel 身份验证与许多简单的 HTML/Javascript 应用程序一起使用。
我认为理想的工作方式是这样的:
- 用户访问简单的 HTML 应用程序
- 简单的 HTML 应用程序包含一个 PHP 文件,该文件检查是否存在 用户已通过身份验证。如果不是这种情况,则将用户发送到 Laravel 应用程序登录,如果用户已登录,他可以简单地使用该应用程序。
- 用户通过 Laravel 登录并被重定向回 HTML 应用程序,该过程将重新开始。
我遇到的问题是检查用户是否登录了 PHP 脚本。 Laravel 会话在那里不可用(通过 session_start() 和 $_SESSION["auth"] = true 共享它只会将变量添加到原生 PHP 会话的 Laravel 版本)。
这些是我在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");
}
你可能想知道为什么我不只是将应用程序包含在 Laravels 框架中,这是因为这个简单的 HTML 应用程序大约有 100 个不同版本,分散在 10 个域名上,目前每个域名都有自己的(非常古老和不安全的)登录脚本(每次创建新域时都会复制该脚本)。因此,我想使用 Laravel 将其集中在一个数据库和一个管理系统中。
希望这里有人知道如何解决这个问题或解决它(也许我应该尝试在我的 PHP 脚本中使用 Laravel 会话包?)。
【问题讨论】:
标签: php session authentication laravel