帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签: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  |  如果智培  |  酷兔英语