Session store not set on request.

白小二發表於2019-08-15

今天在把釘釘小程式從本地 web 環境遷移到線上的時候出現了這個小問題,主要是本地環境使用的是 web 路由,線上使用的是 api 路由,而 laravel5.5kernel.php 中介軟體組裡並沒有為 api 路由新增相關中介軟體導致

最直接的解決辦法就是在 App\Http\kernel.php 裡的 protected $middleware 裡新增中介軟體

    protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
        \App\Http\Middleware\TrustProxies::class,
        \Illuminate\Session\Middleware\StartSession::class,//新增中介軟體
        // \App\Http\Middleware\EnableCrossRequestMiddleware::class,
    ];

但是由於線上開發環境主管做了檔案修改限制,所以只能選擇直接在路由組裡新增

$api->group(['namespace'=>'App\Http\Controllers\Api\Mark','prefix'=>'mark','middleware'=>'\Illuminate\Session\Middleware\StartSession::class'],function($api){

$api->post('userInfo',"MdetailsController@userInfo");

$api->post('mdetails',"MdetailsController@create");

$api->get('alias',"MdetailsController@alias");

$api->get('mtypes',"MtypesController@index");

});

相關文章