1. Go to this page and download the library: Download masterei/laravel-signer library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
masterei / laravel-signer example snippets
use App\Models\User;
use Masterei\Signer\Signer;
// creating signed url that can only be accessed by limited number of times
Signer::consumableRoute('subscribe', 1, ['user' => 1]);
// expires after a specified amount of time
Signer::temporaryConsumableRoute('subscribe', now()->addMinute(), 1, ['user' => 1]);
// creating signed url that can only be access by certain specified user/s
$user = User::first();
Signer::authenticatedRoute('subscribe', $user, ['user' => 1]);
// note: user parameter can accept; user id as int or array, model, collection
// expires after a specified amount of time
Signer::temporaryAuthenticatedRoute('subscribe', now()->addMinute(), $user, ['user' => 1]);
return Signer::route('subscribe') // route name
->parameters(['user' => 1]) // additional parameters
->authenticated([1, 2]) // user id as int or array, model, collection
->consumable(2) // number of times url can be accessed
->relative() // exclude domain from signature hashing
->prefixDomain() // force domain prefix on relative url
->expiration(now()->addDays(2)) // url expiration period; accepts: Carbon/Carbon instance
->make(); // finally create the url
Signer::signedRoute('subscribe', ['user' => 1]);
// You may exclude the domain from the signed URL hash
// by providing the `absolute` argument to the signedRoute method:
Signer::signedRoute('subscribe', ['user' => 1], absolute: false);
// If you would like to generate a temporary signed URL
// that expires after a specified amount of time.
Signer::temporarySignedRoute('subscribe', now()->addDay(), ['user' => 1]);
// To ensure that the incoming request has a valid signature,
// you have to >name('subscribe')->middleware('signer');
// Sometimes, you want to forcefully disable the framework native validation,
// you should provide the `strict` argument to the middleware parameter.
Route::post('subscribe/{user}', function (Request $request) {
// ...
})->name('subscribe')->middleware('signer:strict');
Route::post('subscribe/{user}', function (Request $request) {
// ...
})->name('subscribe')->middleware('signer:relative');
use Masterei\Signer\Models\Signed;
return Signed::first()->url();
use Masterei\Signer\URLParser;
$parsedUrl = URLParser::fromString(request()->getUri());
return $parsedUrl->getSignature();
use Masterei\Signer\Models\Signed;
use Masterei\Signer\URLParser;
$parsedUrl = URLParser::fromString(request()->getUri());
return Signed::findValidSignature($parsedUrl->getSignature());
// or specify with path
return Signed::findValidSignature($parsedUrl->getSignature(), $parsedUrl->getPath());