benxmy / laravel-dual-use-signed-url
Laravel 双用途签名 URL
Requires
- php: ^7.1
- illuminate/support: ^5.6|^6.0
Requires (Dev)
- orchestra/testbench: 3.8.*
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2024-09-11 00:05:16 UTC
README
这是 Laravel 单用途签名 URL 的一个分支。这个版本允许对生成的 URL 进行两次访问。这个包专门为可以用于媒体文件的临时 src
URL 的签名 URL 而创建。由于浏览器通常处理这些 URL 的方式,请求将被执行两次--一次是预检请求,另一次是实际的文件请求。这种实现允许 URL 在短时间内连续使用两次,但之后 URL 将变得不可用。生成的 URL 只对生成它的用户可用,并且可以设置 URL 使用期限。未来的更新将包括可选的 'uses_allowed' 参数,以便可以动态设置 URL 的使用次数。
安装
您可以通过 composer 安装此包。
composer require benxmy/laravel-dual-use-signed-url
安装后,运行 php artisan migrate
。
使用方法
我最初从 Laravel 单用途签名 URL 分支出来,以便使某人更难直接访问嵌入式 src
属性 URL 的直接下载链接。原始包对于密码重置等单用途 URL 非常有用。
首先创建一个接受 {user} 参数的路由并给它一个名称。例如
Route::get('/play-media/{user}', [DualUseSignedUrlController::class, 'handle']) ->name('dual-use-url') ->middleware('validateDualUseSignedUrl');
上述路由可以是你想要的任何东西。包将在后台附加额外的参数。例如,你可以创建一个类似的路由:Route::get('/play-media/{user}/{media}', ...)
。但是,你必须在路由中包括 {user}
作为第一个参数。
然后在控制器中,你可以使用以下方法生成到该路由的双用途签名 URL
$url = DualUseSignedUrl::make('dual-use-url', $userId, $expiresInMinutes);
对于我的使用(作为 src
属性),我然后可以简单地传递 $url
到视图中,并在音频或视频标签中使用它。
测试
测试目前不工作。
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 了解详情。
致谢
许可证
MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。
Laravel 包模板
此包是用 Laravel 包模板 生成的。