Laravel 利用中间件处理API接口数据加解密;
在某些时候,为了接口数据的安全和保密性,需要对来回的数据进行加密处理。如果是 Laravel 框架,中间件绝对是个好东西。
Laravel 中间件包含一个完整的工作流,即请求前中间件(request)和请求后中间件(response)。在我们这次的场景中,刚好很好的用到了整个流程。
附上代码:
首先添加QuerySecret中间件:
运行命令:php artisan make:middleware QuerySecret
protected $routeMiddleware = [ ‘querysecret’ => AppHttpMiddlewareQuerySecret::class ];
编写中间件代码:
/**
* Handle an incoming request.
*
* @param IlluminateHttpRequest $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解密
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
在 PyTorch 中训练大语言模型不仅仅是写一个训练循环这么简单。我们通常需要将模型分布在多个设备上,并使用许多优化技术以实现稳定高效的训练。Hugging Face 🤗 Accelerate 的创建是为了支持跨 GPU 和 TPU 的分布式训练,并使其能够…