簡體   English   中英

從Postman或Guzzle呼叫Laravel會話時無法保存

[英]Laravel sessions not saving when called from Postman or Guzzle

我在Laravel中遇到會話問題。 我的項目包含兩個項目,一個是API,另一個是WebApp。 兩者都使用Laravel 5.5。

問題是我想將會話保存在我的API項目中 ,但未保存。 api.php保存在api.php

Route::get('test', function () {
    session(['data' => "data"]);
    session()->save();
});
  • 如果我通過Firefox訪問http://mydomain.dev/test ,則可以在Laravel DebugBar中看到該會話,因為該會話已保存:

在此處輸入圖片說明

  • 如果我通過Postman對該URL發出請求,則會話不會出現在Laravel DebugBar中! 它沒有保存

經過研究,我發現了這個問題 ,人們說要在Kernel.phpKernel.php以下兩行:

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

我已經添加了這兩行,問題仍然存在。

Guzzle也是如此 從我的WebApp,我對我的API進行了GET調用。 在API中調用的方法中,我保存了一個會話,而當我在API的另一個方法中檢索該會話時,由於未保存會話,我將得到null

我的懷疑是與Postman和Guzzle的會話問題相關,並且我缺少一些東西。

我的config\\session.php文件是默認文件。 我知道我可以選擇將會話保存到數據庫中,但是我希望將其保留為默認值,但是如果沒有其他選擇,我將把SESSION_DRIVER選項從session.php更改為filedatabase

API是並且應該是無會話/無狀態的 他們無法處理。

這就是使用基於令牌的身份驗證的原因。 為了確保您對此有所了解。 web.php文件中編寫一條route ,然后從postmanbrowser中將其命中,然后您將看到會話信息(如果有)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM