chatagency/laravel-signed-requests

一个旨在(希望)使自定义签名请求更简单的包。

1.1.0 2022-10-04 22:14 UTC

This package is auto-updated.

Last update: 2024-09-05 02:39:03 UTC


README

一个Laravel包,用于简化两个Laravel应用程序之间的签名请求。

要求

您需要安装openssl。我们使用hash_hmac()函数从有效负载创建签名并验证提交的签名。请在这里查看您可能使用的算法:https://php.ac.cn/manual/en/function.hash-hmac-algos.php

该包包括:

一个配置文件,允许您通过名称定义请求类型,并为每种请求类型提供一个唯一的签名密钥字符串,用于验证签名请求的有效负载。

一个工作的中间件验证器

这个中间件默认用于“请求”类型。发布后,您可以复制此中间件,并将其用作创建自己的签名请求验证中间件的基础。

开始时,在通过composer安装后运行

artisan vendor:publish --provider=ChatAgency\LaravelSignedRequests\LaravelSignedRequestsServiceProvider --tag=laravel-signed-requests

这将为您提供配置文件 config/signed-requests.php 以及中间件,这些中间件将被复制到您的应用程序的中间件文件夹。

作为测试,您可以在安装后使用此curl调用,使用所有默认配置。

该包注册了一个中间件,别名是:signed-requests。创建一个控制器并将此中间件分配给一个使用此控制器的post路由。

然后您可以将一个简单的测试有效负载发送到这个路由

curl --request POST \
  --url //{YOUR_LOCAL_ENV_SITE_URL_MAYBE?}/api/test \
  --header 'Content-Type: application/json' \
  --header 'X-BaseSignature: 2fde638dd705cc78c2cfe315f395b91ce3e09b2c9637f200cae65fc3041f4e4f' \
  --data '{"test":1}'

如果签名没有通过中间件的验证,您将收到未授权的http代码。