帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:Lifetime  Signed  validate  URL  Limit  
Create and validate signed URLs with a limited lifetime

  • 源代码名称:laravel-url-signer
  • 源代码网址:http://www.github.com/spatie/laravel-url-signer
  • laravel-url-signer源代码文档
  • laravel-url-signer源代码下载
  • Git URL:
    git://www.github.com/spatie/laravel-url-signer.git
  • Git Clone代码到本地:
    git clone http://www.github.com/spatie/laravel-url-signer
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/spatie/laravel-url-signer
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • 在 Laravel 中创建具有有限生存期的安全 url

    Latest Version on PackagistBuild StatusQuality ScoreSensioLabsInsightStyleCITotal Downloads

    这里软件包可以创建具有有限生命周期的url 。 这是通过在URL中添加过期日期和签名来完成的。

    这是你可以创建对 30天有效的签名 URL:

    UrlSigner::sign('https://myapp.com/protected-route', 30);

    输出将如下所示:

    https://app.com/protected-route?expires=xxxxxx&signature=xxxxxx

    URL可以通过 validate -function进行验证。

    UrlSigner::validate('https://app.com/protected-route?expires=xxxxxx&signature=xxxxxx');

    包还提供了一个中间件,用于保护路由的安全性。

    安装

    就像你可能猜到的,软件包可以通过Composer安装:

    composer require spatie/laravel-url-signer

    在 Laravel 5.5中,服务提供者和facade将自动注册。 在旧版本的框架中,只需添加 serviceprovider,并可以选择使用 register:

    // config/app.php'providers'=> [...SpatieUrlSignerLaravelUrlSignerServiceProvider::class,];'aliases'=> [...'UrlSigner'=>SpatieUrlSignerLaravelUrlSignerFacade::class,];

    配置

    配置文件可以通过以下方式选择发布:

    php artisan vendor:publish --provider="SpatieUrlSignerLaravelUrlSignerServiceProvider"

    这是 file:的内容

    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', ],];

    用法

    签名 url

    可以使用 sign -method对url进行签名:

    UrlSigner::sign('https://myapp.com/protected-route');

    默认情况下,URL的生存期为一天。 这里值可以在配置文件中更改。 如果希望自定义生命周期,可以指定URL有效的天数:

    //the generated URL will be valid for 5 days.UrlSigner::sign('https://myapp.com/protected-route', 5);

    对于细粒度控件,还可以将 DateTime 实例作为第二个参数传递。 这个网址在那时候是有效的。 本示例使用碳进行方便:

    //This URL will be valid up until 2 hours from the moment it was generated.UrlSigner::sign('https://myapp.com/protected-route', CarbonCarbon::now()->addHours(2) );

    验证 url

    要验证签名的URL,只需调用 validate() -method 。 返回一个布尔值。

    UrlSigner::validate('https://app.com/protected-route?expires=xxxxxx&signature=xxxxxx');

    使用中间件保护路由

    软件包还提供了一个保护路由的中间件:

    Route::get('protected-route', ['middleware'=>'signedurl', function () {return'Hello secret world!';}]);

    如果没有有效签名调用路由,则应用程序将终止 403状态代码。

    变更日志

    有关最近更改的信息,请参阅日志记录程序

    测试

    $ vendor/bin/phpunit

    在之外的使用情况

    如果你正在处理非laravel项目,那么可以使用框架agnostic版本

    类似库

    如果需要使用 signed,请考虑基于这个库的dreamonkey插件包。

    请参见为细节提供帮助。

    安全性

    如果发现任何相关的安全问题,请电子邮件 freek@spatie.be,而不是使用问题跟踪程序。

    Postcardware

    你可以以使用这个包,但如果它使你的生产环境,我们非常感谢你寄来的明信片。

    我们的地址为:Spatie,Samberstraat 69,2060,比利时。

    我们在公司网站上发布所有收到的明信片

    Credits

    支持我们

    Spatie是位于比利时Antwerp的网页设计机构。 你将在我们的网站上找到我们所有开源项目的概述。

    你的业务取决于我们的贡献? 请联系我们,并支持我们的 Patreon服务。 所有的承诺都将致力于分配员工的维护和新的awesome 。

    许可证

    MIT许可证( MIT ) 有关详细信息,请参阅许可证文件



    文章标签:URL  Limit  validate  Signed  Lifetime  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语