abovesky/url-auth

生成带有过期日期和签名的URL,以防止未经授权的访问

v1.0.3 2017-10-20 01:04 UTC

This package is not auto-updated.

Last update: 2024-09-29 05:01:32 UTC


README

此包可以创建有限生命周期的URL。这是通过向URL添加过期日期和签名来实现的。

$urlAuth = new Md5('randomkey');

$urlAuth->sign('https://myapp.com', 30, 'days');

// => The generated url will be valid for 30 days

这将输出类似 https://myapp.com/?expires=xxxx&signature=xxxx 的URL。

想象一下将此URL发送给您的应用程序用户。当用户点击签名的URL时,您的应用程序可以验证它,使用

$urlAuth->validate('https://myapp.com/?expires=xxxx&signature=xxxx');

安装

该包可以通过Composer安装

composer require abovesky/url-auth

使用

签名对象可以签名URL并验证签名的URL。使用一个秘密密钥来生成签名。

use abovesky\UrlAuth\Md5;

$urlAuth = new Md5('mysecretkey');

生成URL

可以通过向sign方法提供常规URL和过期日期来生成签名URL。

$expirationDate = (new DateTime)->modify('10 days');

$urlAuth->sign('https://myapp.com', $expirationDate);

// => The generated url will be valid for 10 days

如果提供一个整数作为过期日期,则URL将有效该天数。

$urlAuth->sign('https://myapp.com', 30, 'days');

// => The generated url will be valid for 30 days

验证URL

要验证签名URL,只需调用validate()方法。这将返回一个布尔值。

$urlAuth->validate('https://myapp.com/?expires=1439223344&signature=2d42f65bd023362c6b61f7432705d811');

// => true

$urlAuth->validate('https://myapp.com/?expires=1439223344&signature=2d42f65bd0-INVALID-23362c6b61f7432705d811');

// => false

编写自定义签名者

此包提供了一个使用md5生成签名的签名者。您可以通过实现abovesky\UrlAuth\iUrlAuth接口来创建自己的签名者。如果您让您的签名者扩展abovesky\UrlAuth\Base,则只需提供createSignature-方法。

测试

可以使用以下命令运行测试

$ vendor/bin/phpspec run

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件