benxmy/laravel-dual-use-signed-url

Laravel 双用途签名 URL

0.2.1 2020-02-07 22:28 UTC

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 包模板 生成的。