akaunting / signed-url
1.0.0
2018-10-15 08:14 UTC
Requires
- php: >=5.6.0
- illuminate/http: >=5.2 <5.6.12
- illuminate/support: >=5.2 <5.6.12
- spatie/url-signer: ^1.0.1
This package is auto-updated.
Last update: 2021-03-04 14:39:22 UTC
README
此包可以创建有限生命周期的 URL。这是通过在 URL 中添加过期日期和签名来完成的。
这样您可以创建有效期为 30 天的签名 URL
SignedUrl::sign('https://myapp.com/protected-route', 30);
输出将如下所示
https://app.com/protected-route?expires=xxxxxx&signature=xxxxxx
可以使用 validate
-函数来验证 URL。
SignedUrl::validate('https://app.com/protected-route?expires=xxxxxx&signature=xxxxxx');
该包还提供了一个 中间件来保护路由。
安装
如您所猜测,此包可以通过 Composer 安装
composer require akaunting/signed-url
此包旨在为 Laravel 项目提供格式化和转换货币值的工具。在框架的旧版本中,只需添加服务提供者,并可选地注册外观
// config/app.php 'providers' => [ ... Akaunting\SignedUrl\Provider::class, ]; 'aliases' => [ ... 'SignedUrl' => Akaunting\SignedUrl\Facade::class, ];
配置
配置文件可以通过以下方式可选发布
php artisan vendor:publish --provider=signed-url
这是文件内容
return [ /* * This string is used the to generate a signature. You should * keep this value secret. */ 'signatureKey' => env('APP_KEY'), /* * The default expiration time of a URL in days. */ 'default_expiration_time_in_days' => 1, /* * These strings are used a parameter names in a signed url. */ 'parameters' => [ 'expires' => 'expires', 'signature' => 'signature', ], /* |-------------------------------------------------------------------------- | Middleware |-------------------------------------------------------------------------- | | This option indicates the middleware to change language. | */ 'middleware' => 'Akaunting\SignedUrl\Middleware\ValidateSignedUrl', ];
用法
签名 URL
可以使用 sign
-方法对 URL 进行签名
SignedUrl::sign('https://myapp.com/protected-route');
默认情况下,URL 的生命周期为一天。此值可以在配置文件中更改。如果您需要自定义生命周期,可以指定 URL 应该有效的天数
//the generated URL will be valid for 5 days. SignedUrl::sign('https://myapp.com/protected-route', 5);
为了更精细的控制,您还可以传递一个 DateTime
实例作为第二个参数。URL 将有效到那个时刻。此示例使用 Carbon 以方便起见
//This URL will be valid up until 2 hours from the moment it was generated. SignedUrl::sign('https://myapp.com/protected-route', Carbon\Carbon::now()->addHours(2) );
验证 URL
要验证签名 URL,只需调用 validate()
-方法。这将返回一个布尔值。
SignedUrl::validate('https://app.com/protected-route?expires=xxxxxx&signature=xxxxxx');
使用中间件保护路由
该包还提供了一个中间件来保护路由
Route::get('protected-route', ['middleware' => 'signed', function () { return 'Hello secret world!'; }]);
如果没有有效签名调用路由,您的应用将终止并返回 403 状态码。
变更日志
请参阅 发布 了解最近更改的信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 security@akaunting.com 而不是使用问题跟踪器。
致谢
许可
MIT 许可证(MIT)。有关更多信息,请参阅 LICENSE。