2017 © Pedro Peláez
 

library url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

image

spatie/url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

  • Sunday, April 9, 2017
  • by Spatie
  • Repository
  • 9 Watchers
  • 139 Stars
  • 106,703 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 13 Forks
  • 0 Open issues
  • 5 Versions
  • 13 % Grown

The README.md

Create signed URLs with a limited lifetime

Latest Version on Packagist Software License Quality Score Total Downloads, (*1)

This package can create URLs with a limited lifetime. This is done by adding an expiration date and a signature to the URL., (*2)

$urlSigner = new Sha256UrlSigner('randomkey');

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

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

This will output a URL that looks like https://myapp.com/?expires=xxxx&signature=xxxx., (*3)

Imagine mailing this URL out to the users of your application. When a user clicks on a signed URL your application can validate it with:, (*4)

// returns `true` if valid, `false` if not
$urlSigner->validate('https://myapp.com/?expires=xxxx&signature=xxxx');

Support us

, (*5)

We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products., (*6)

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall., (*7)

Postcardware

You're free to use this package (it's MIT-licensed), but if it makes it to your production environment we highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using., (*8)

Our address is: Spatie, Kruikstraat 22, 2018 Antwerp, Belgium., (*9)

All postcards are published on our website., (*10)

Installation

The package can installed via Composer:, (*11)

composer require spatie/url-signer

Usage

A signer-object can sign URLs and validate signed URLs. A secret key is used to generate signatures., (*12)

use Spatie\UrlSigner\Sha256UrlSigner;

$urlSigner = new Sha256UrlSigner('mysecretkey');

Generating URLs

Signed URLs can be generated by providing a regular URL and an expiration date to the sign method., (*13)

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

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

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

If an integer is provided as expiration date, the URL will be valid for that amount of seconds., (*14)

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

// => The generated URL will be valid for 30 seconds

Validating URLs

To validate a signed URL, simply call the validate() method. This will return a boolean., (*15)

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

// => true

$urlSigner->validate('https://myapp.com/?expires=1439223344&signature=a479abde194d111022a6831edbda-INVALID-29b14e7bdb760438a8a0be2556cd1a6c23fa');

// => false

Writing custom signers

This packages provides a signer that uses SHA256 to generate signature. You can create your own signer by implementing the Spatie\UrlSigner\Contracts\UrlSigner-interface. If you let your signer extend Spatie\UrlSigner\AbstractUrlSigner you'll only need to provide the createSignature-method., (*16)

Tests

The tests can be run with:, (*17)

composer test

Integrations

To get started quickly in Laravel you can use the spatie/laravel-url-signer package., (*18)

Changelog

Please see CHANGELOG for more information what has changed recently., (*19)

Contributing

Please see CONTRIBUTING for details., (*20)

Security

If you've found a bug regarding security please mail security@spatie.be instead of using the issue tracker., (*21)

Credits

About Spatie

Spatie is a webdesign agency in Antwerp, Belgium. You'll find an overview of all our open source projects on our website., (*22)

License

The MIT License (MIT). Please see License File for more information., (*23)

The Versions

09/04 2017

dev-master

9999999-dev https://github.com/spatie/url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

  Sources   Download

MIT

The Requires

 

The Development Requires

url security encryption spatie sign

09/04 2017

1.0.2

1.0.2.0 https://github.com/spatie/url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

  Sources   Download

MIT

The Requires

 

The Development Requires

url security encryption spatie sign

27/03 2017

dev-analysis-qgL2Dw

dev-analysis-qgL2Dw https://github.com/spatie/url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

  Sources   Download

MIT

The Requires

 

The Development Requires

url security encryption spatie sign

15/08 2015

1.0.1

1.0.1.0 https://github.com/spatie/url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

  Sources   Download

MIT

The Requires

 

The Development Requires

url security encryption spatie sign

14/08 2015

1.0.0

1.0.0.0 https://github.com/spatie/url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

  Sources   Download

MIT

The Requires

 

The Development Requires

url security encryption spatie sign