Hyperf自定义中间件之API签名认证

本文详细介绍了在Hyperf框架中如何自定义中间件来实现API的签名认证,包括签名生成逻辑、验证过程以及在Hyperf中间件系统中的应用,帮助提升API安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php

declare(strict_types=1);

namespace App\Middleware;

use Psr\Container\ContainerInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Hyperf\DbConnection\Db;
use Hyperf\Utils\Context;
use Hyperf\HttpMessage\Stream\SwooleStream;
use \Hyperf\HttpServer\Contract\RequestInterface;

class ApiSignMiddleware implements MiddlewareInterface
{

    /**
     * @var ContainerInterface
     */
    protected $container;

    /**
     * @var RequestInterface
     */
    protected $serverRequest;

    public function __construct(ContainerInterface $container, RequestInterface $serverRequest) {
        $this->container = $container;
        $this->serverRequest = $serverRequest;
    }

    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface {
        $empObj = \App\Utils\Util::build_empty_object();
        $response = Context::get(ResponseInterface::class);
        $serverParams = $request->getServerParams();
        $queryString = (isset($serverParams['query_string'])) ? $serverParams['query_string'] : '';
        (!empty($queryString)) && $queryString = strtolower($queryString);
        $uri = (isset($serverParams['request_uri'])) ? $serverParams['request_uri'] : '';
        //var_dump($uri);
        if (empty($uri)) {
            return $handler->handle($request);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jobsen123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值