gpt4 book ai didi

php - Lumen PHP 框架中的 session 不持久

转载 作者:可可西里 更新时间:2023-11-01 12:58:45 31 4
gpt4 key购买 nike

我正在为一个项目使用 Lumen(由 Laravel 开发)微框架,但我在 session 方面遇到了一些问题。我现在只是在测试实现,但我遇到的问题是当我设置一个 session 变量然后刷新页面时,该变量不再设置。

在我的 .env 文件中我有:

SESSION_DRIVER=cookie

而且我知道它正在被拾取,因为当我将它更改为 memcached 时它会抛出一个错误(因为我没有设置 memcached)。

我也启用了中间件:

$app->middleware([
'Illuminate\Session\Middleware\StartSession',
'Illuminate\View\Middleware\ShareErrorsFromSession',
]);

然后在我的 Controller 中我有:

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class SessionController extends Controller
{
public function index(Request $request)
{
$request->session()->put('email', 'test@test.com');
$request->session()->save(); // Not sure if this is required

var_dump($request->session()->get('email'));
exit;

return view('session.index', ['test' => $value]);
}
}

该值是在我加载页面时设置的:

string(13) "test@test.com"

但是当我注释掉设置变量的行,然后刷新页面时,值为 NULL:

// $request->session()->put('email', 'test@test.com');
// $request->session()->save();

var_dump($request->session()->get('email'));
exit;

正在浏览器中设置单个 cookie,但它似乎不是用于 session 变量:

laravel_session 2ecef0103418ca82d068ec6a6c6fbec388af9b9e    localhost   /   2015-06-22T14:59:29.856Z    55  ✓

编辑:如果我将 SESSION_DRIVER 设置为 cookie,则实际上设置了 cookie——无论我是否实际设置了 session 变量。

我不确定我哪里出错了,而且我觉得文档不是很全面。

谢谢

最佳答案

由于您正在尝试使用 cookie session 存储,因此您还需要 cookie 中间件。启用的中间件应该是:

$app->middleware([
'Illuminate\Cookie\Middleware\EncryptCookies',
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
'Illuminate\View\Middleware\ShareErrorsFromSession',
]);

在您的第一个示例中,您在创建 session 后立即使用它,以便您能够恢复该值。但是,由于 session cookie 本身不是由代码设置的,因此当您返回页面时,不会恢复任何 session 。无论您是否使用 cookie 存储,“laravel_session” cookie 总是被设置。我在项目中使用 file 存储,但它仍然得到设置。

此外,AFAIK,行:

$request->session()->save();

没有必要。


documentation状态:

To enable sessions, you must uncomment all of the middleware within the $app->middleware() method call in your bootstrap/app.php file.

关于php - Lumen PHP 框架中的 session 不持久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30981075/

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