从Postman或Guzzle呼叫时Laravel会话无法保存

时间:2018-08-18 16:11:58

标签: laravel session postman laravel-5.5 guzzle

我在Laravel中遇到会话问题。我的项目包含两个项目,一个是API,另一个是WebApp。两者都使用Laravel 5.5。

问题是我想在我的API项目中保存会话 ,但未保存。我将这样的会话保存在api.php中:

Route::get('test', function () {
    session(['data' => "data"]);
    session()->save();
});
  • 如果我通过Firefox访问http://mydomain.dev/test,则可以在Laravel DebugBar中看到该会话,因为该会话已保存:

enter image description here

  • 如果我向Postman提出了对该URL的请求,则会话不会出现在Laravel DebugBar中! 它没有保存

经过研究,我发现了question,有人说要在Kernel.php中加入这两行:

protected $middleware = [
        //...
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
];

我已经添加了这两行,问题仍然存在。

“食尸鬼”也是如此。从我的WebApp,我对我的API进行了GET调用。在API中调用的方法中,我保存了一个会话,而当我在API的另一种方法中检索该会话时,我得到了null,因为尚未保存会话!

我怀疑与Postman和Guzzle的会话问题有关,并且我缺少一些东西。

我的config\session.php文件是默认文件。我知道我可以选择将会话保存到数据库中,但是我希望将其保留为默认值,但是如果没有其他选择,我可以将SESSION_DRIVER的{​​{1}}选项从< em>文件到数据库

1 个答案:

答案 0 :(得分:0)

API是而且应该是无会话/无状态的。 他们无法处理。

这就是为什么使用基于令牌的身份验证的原因。 为了确保您对此有所了解。在route文件中写入web.php,然后从postmanbrowser中点击它,然后您将看到会话信息。