首页 > 其他分享 >Laravel Api接口数据进行加解密

Laravel Api接口数据进行加解密

时间:2023-06-06 20:31:57浏览次数:31  
标签:Laravel 中间件 request 加解密 content Api input data response


Laravel 利用中间件处理API接口数据加解密;

在某些时候,为了接口数据的安全和保密性,需要对来回的数据进行加密处理。如果是 Laravel 框架,中间件绝对是个好东西。

Laravel 中间件包含一个完整的工作流,即请求前中间件(request)和请求后中间件(response)。在我们这次的场景中,刚好很好的用到了整个流程。

附上代码:

首先添加QuerySecret中间件:

        运行命令:php artisan make:middleware QuerySecret

        protected $routeMiddleware = [ 'querysecret' => \App\Http\Middleware\QuerySecret::class ];

编写中间件代码:

/**
 * Handle an incoming request.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \Closure  $next
 *
 * @return mixed
 */
public function handle($request, Closure $next)
{
    //针对字段参数的加解密
    $arr = [
        'id',
    ];
    $params = $request->input();
    foreach ($arr as $item) {
        if (isset($params[$item])) {
            $params[$item] = authCodeId($params[$item], 'decode');
        }
    }
    $input = $request->input();
    //对 input 里的数据进行解密,解密后的数据再继续给到 request 中
    //解密后的数据
    $request->merge($input);
    $response = $next($request);
    //拿到需要返回的数据,然后进行加密
    $content = $response->getContent();
    if ($content) {
        $content = json_decode($content, true);
        foreach ($arr as $v) {
            if ( !empty($content['data']['list']) && is_array($content['data']['list'])) {
                foreach ($content['data']['list'] as $k => &$val) {
                    if ($k == $v) {
                        $val = authCodeId($val, 'encode', 16);
                    }
                }
                unset($val);
            } elseif ( !empty($content['data'][$v])) {
                $content['data'][$v] = authCodeId($content['data'][$v], 'encode', 16);
            }
        }
        # 对 content 进行加密处理
        $response->setContent(json_encode($content));
    }

    return $response;
}


注意自己API返回的格式,按照返回的格式,照着改改,搞定~

Laravel Api接口数据进行加解密_Websites的博客_laravel md5解密

标签:Laravel,中间件,request,加解密,content,Api,input,data,response
From: https://blog.51cto.com/u_3135183/6427667

相关文章

  • API接口对电商平台的实质性帮助有哪些?以及api接口调用的的方式|根据关键词取商品列表
    API接口提供了电商平台之间数据和功能的交互方式,可以为电商平台带来以下几方面的实质性帮助:1. 增加平台数据实时性和准确性:通过API接口实现两个电商平台数据的实时同步,保证了平台商品信息、订单信息等数据的实时性和准确性。2. 提升平台的扩展性和可拓展性:通过API接口,第三方开......
  • 违禁词检测API - 私有化部署
    违禁词检测API,支持私有化部署,开箱即用,下载到本地直接运行,直接httpjson查询。下载地址https://github.com/bosnzt/wordscheckhttps://gitee.com/bosnzt/wordscheck运行下[root@localhostsvc]#chmod+xwordscheck[root@localhostsvc]#./wordscheckcurl试下效果[root@......
  • Swagger2生成Api文档
    前置条件是项目中已经使用swagger一、html格式:1.加入依赖swagger2markup<!--文档生成--> <dependency> <groupId>io.github.swagger2markup</groupId> <artifactId>swagger2markup</artifactId> <version>1.3.1</ve......
  • API全场景零码测试机器人,华为云发布ATGen in CodeArts TestPlan
    摘要:华为云ATGen现开放对外邀测,欢迎预约。本文分享自华为云社区《API全场景零码测试机器人,华为云发布ATGeninCodeArtsTestPlan》,作者:华为云头条。众所周知,软件服务及组件之间的交互主要依赖大量的API接口。以华为云300多个商用云服务为例,平均每个服务含500+接口,接口总数高......
  • Elasticsearch专题精讲—— REST APIs —— Document APIs —— Update By Query API
    RESTAPIs——DocumentAPIs—— UpdateByQueryAPIhttps://www.elastic.co/guide/en/elasticsearch/reference/8.8/docs-update-by-query.html#docs-update-by-queryUpdatesdocumentsthatmatchthespecifiedquery.Ifnoqueryisspecified,performsanupdateo......
  • 如何通过抖音订单API接口获取订单详情
    要通过抖音订单API接口获取订单详情,您需要进行以下步骤:1.获取AccessToken:使用APPID和APPSecret调用获取AccessTokenAPI接口来获取您的AccessToken。2.获取订单列表:使用订单查询API接口传递AccessToken和其他查询参数来查询订单列表并获取订单ID。3.获取订单详情:使用订单......
  • Elasticsearch专题精讲—— REST APIs —— Document APIs —— Update API
    RESTAPIs——DocumentAPIs——UpdateAPIhttps://www.elastic.co/guide/en/elasticsearch/reference/8.8/docs-update.htmlUpdatesadocumentusingthespecifiedscript.使用指定的脚本更新文档。1、Request(请求)https://www......
  • 手把手教你AspNetCore WebApi:Swagger(Api文档)
    前言小明已经实现“待办事项”的增删改查,并美滋滋向负责前端的小红介绍Api接口,小红很忙,暂时没有时间听小明介绍,希望小明能给个Api文档。对于码农小明来说能不写文档就尽量不要写,不过这也难不倒小明,他知道Swagger不仅可以自动生成Api文档,并还可以用Swagger进行接口测试。Swagger是什......
  • 手把手教你AspNetCore WebApi:数据验证
    前言小明最近又遇到麻烦了,小红希望对接接口传送的数据进行验证,既然是小红要求,那小明说什么都得满足呀,这还不简单嘛。传统验证[HttpPost]publicasyncTask<ActionResult<Todo>>PostTodo(Todotodo){if(string.IsNullOrEmpty(todo.Name)){returnOk("名称不......
  • 手把手教你AspNetCore WebApi:Serilog(日志)
    前言小明目前已经把“待办事项”功能实现了,API文档也搞定了,但是马老板说过,绝对不能让没有任何监控的项目上线的。Serilog是什么?在.NET使用日志框架第一时间会想到NLog或是Log4Net,Serilog是这几年快速崛起的Log框架之一,Serilog是以Structuredlogging为基础进行设计,透过loggingAP......