Session store not set on request.
今天在把钉钉小程序从本地 web 环境迁移到线上的时候出现了这个小问题,主要是本地环境使用的是 web 路由,线上使用的是 api 路由,而 laravel5.5 的 kernel.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");
});
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: