首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改laravel中的所有请求

如何更改laravel中的所有请求
EN

Stack Overflow用户
提问于 2019-06-08 14:54:34
回答 2查看 245关注 0票数 0

我收到了来自加密所有post参数的新前端的请求

之前的前端没有加密post参数

但是,当前的后端也不会解密收到的post参数

如何更改收到的整个请求,以便在调用

代码语言:javascript
复制
$request->get('param_name');

因此,当param_name的值进入要使用的变量时,它已经被解密

因为用1修改整个后端1的效率非常低

我曾经修改过trans()函数,只需转到处理它的文件并修改它

但应要求提供

文件是什么?

EN

回答 2

Stack Overflow用户

发布于 2019-06-08 15:11:03

您可以使用中间件。

代码语言:javascript
复制
php artisan make:middleware RequestInterceptorMiddleware

然后,在handle方法中,您可以查询request并执行.merge()

代码语言:javascript
复制
if($request->has('param_name')) {
    $request->merge(['param_name' => decrypt($request->get('param_name'))]);
}

return $next($request);

然后确保在相应的路由中间件声明中将该中间件添加到Kernel.php中。

票数 3
EN

Stack Overflow用户

发布于 2019-06-08 16:20:56

您需要为您的操作创建中间件。

代码语言:javascript
复制
php artisan make:middleware RequestDecryptMiddleware

在Kernel.php add中:

代码语言:javascript
复制
<?php

// Kernel.php

protected $routeMiddleware = [
...
'decrypt' => \App\Http\Middleware\RequestDecryptMiddleware::class,
...
];

在此之后,您可以覆盖中间件中的参数:

代码语言:javascript
复制
public function handle($request, Closure $next)
    {
      if($request->has('encrypt_param')){
        $request->merge(['encrypt_param' => decrypt_function($request->get('encrypt_param'))]);
      }
      return $next($request);
    }

然后在你的控制器中使用它:

代码语言:javascript
复制
public function myAction(RequestDecryptMiddleware $request)...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56504207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档