php - 如何在自定义命令中设置 cookie 并在中间件 Laravel 中获取
问题描述
我正在寻找在控制台自定义命令中设置 cookie 并在 Laravel(版本 - 5.2)的中间件中获取它的方法。这就是我正在尝试的
在自定义命令中,
Cookie::queue('login', 'true', 1);
$cookies = array('login' => true);
在中间件中,
Cookie::get('login') // unable to get here set cookie
通过自定义命令内部调用路由
$req = Request::create('/my/url', 'POST', $params, $cookies);
$res = app()->handle($req);
$responseBody = $res->getContent();
参考 symfony/http-foundation 内部调用路由
您的帮助将不胜感激。
解决方案
我认为您已经创建了一个middleware
,假设CookieMiddlware
。所以里面CookieMiddlware
有一个handle方法。有尝试dd($request);
。
例如:
public function handle($request, Closure $next)
{
dd($request);
//return $next($request);
}
注册您的中间件,然后将其应用于路由。点击该路线,您将看到完整的请求数据。在那里你会找到饼干。打开它并玩它。
如果您已正确设置 cookie,则可以从中间件中的请求中获取它。
+cookies: ParameterBag {#45 ▼
#parameters: array:3 [▼
"laravel_session" => "FDyl3cnxEy3VDIiivxLQmDDbyZuJggeU8"
"XSRF-TOKEN" => "7TQrk9QZKrpPPrgoaAXNOIZlThrePlesjQJ"
"etc" => "2zbP5hem9RcvBcQwBz8UewwZxWQxQAcA4"
]
}
你可以像这样访问它$request->cookie('name');
,我想你知道其余的。它可能会帮助你。
以这种方式检查。
$cookies = array('login' => "akhtar");
$ar = json_encode($cookies);
Cookie::queue('test',$ar,100);
dd(json_decode(Cookie::get('test')));
推荐阅读
- pyspark - 为 PySpark 数据框中的每一行运行 SparkSQL 查询
- spring-boot - 使用 Spring Security OAuth2 客户端的多租户
- pivot-table - Excel 数据透视表 - 如何在使用“显示详细信息”时显示所有数据
- sapb1 - SAP B1 v10:DI-API - 类型初始化程序引发异常
- r - 在 R 中的 3D 散点图中添加网格
- arrays - Struct中的C语言指针数组
- ios - 如果我在不使用导航控制器的情况下以编程方式呈现 ViewController,新的 VC 是“替换”旧的,还是堆叠在顶部?
- node.js - 节点 js JSON:访问对象
- calculated-columns - 范围内所有值的 Quicksight 单一 Countif 函数
- java - Java:JSON 字符串 -> Protobuf 列表