ozanhazer / safe-link
Sign URLs with expiration date to transfer data between projects
v1.0.0
2022-01-31 16:01 UTC
Requires
- php: ^7.0|^8.0
- ext-mbstring: *
- ext-openssl: *
Requires (Dev)
- phpunit/phpunit: ^6.0|^7.0|^8.0|^9.0
README
Framework-agnostic, lightweight URL signer. You can use SafeLink to transfer data between projects.
Sign the url in project 1:
use Alfatron\SafeLink; $safelink = new SafeLink('my-not-short-private-key'); $safelink->redirect('https://second-project/path', ['user' => 'test@example.com', 'action' => 'feed the cat'])
Retrieve it in project 2:
use Alfatron\SafeLink; $safelink = new SafeLink('my-not-short-private-key'); $data = $safeLink->verify(); assert($data['user'], 'test@example.com');
Features
- Uses built-in php serializer to serialize the data to be transferred.
- Can transfer any php type that can be serialized:
object
,array
,string
,integer
. - Supports php 7.0+.
- Has a default timeout of 10sec.s (customizable).
- Uses
openssl
extension to encrypt the data (AES-256 CBC
)
Installation
Run composer require ozanhazer/safe-link
and you're good to go!
Options
Timeout is 10sec.s by default to avoid replay attacks. You can change it like:
use Alfatron\SafeLink; $safeLink = new SafeLink($privateKey, ['timeout' => 2]);