chatagency / laravel-signed-requests
一个旨在(希望)使自定义签名请求更简单的包。
1.1.0
2022-10-04 22:14 UTC
Requires
- php: ^7.3|^8.0|^8.1
- laravel/framework: ^6.0|^7.0|^8.0|^9.0
Requires (Dev)
- phpunit/phpunit: ^7.0|^8.0|^9.0
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代码。