conttas / laravel-signed-url
Laravel 的签名(唯一)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 not auto-updated.
Last update: 2024-09-29 23:52:56 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 conttas/laravel-signed-url
此包旨在为 Laravel 项目提供简单而强大的货币值格式化和转换工具。在框架的旧版本中,只需添加 serviceprovider,并可选地注册 facade
// 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 状态码终止。
变更日志
有关最近更改的更多信息,请参阅发布。
贡献
有关详细信息,请参阅贡献。
安全
如果您发现任何安全相关的问题,请通过电子邮件dev@codions.com报告,而不是使用问题跟踪器。
致谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅许可证。