1. Go to this page and download the library: Download labrodev/laravel-dpop 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/ */
labrodev / laravel-dpop example snippets
return [
'jwt' => [
'secret' => env('DPOP_JWT_SECRET'),
'algorithm' => env('DPOP_JWT_ALGORITHM', 'HS256'),
'lifetime' => env('DPOP_JWT_LIFETIME', 3600),
],
// Acceptable clock skew in seconds for DPoP proof iat validation
'clock_skew' => env('DPOP_CLOCK_SKEW', 30),
// Cache store for JTI anti-replay and idempotency (null = app default)
'cache_store' => env('DPOP_CACHE_STORE'),
// How long a used JTI is retained to detect replays (seconds)
'jti_ttl' => env('DPOP_JTI_TTL', 600),
// Header name carrying the DPoP proof (default: DPoP)
'proof_header' => env('DPOP_PROOF_HEADER', 'DPoP'),
// Comma-separated list of allowed Origin values (empty = allow all)
'allowed_origins' => explode(',', env('DPOP_ALLOWED_ORIGINS', '')),
// Route URI for the token endpoint (null or empty = disabled)
'token_route' => env('DPOP_TOKEN_ROUTE', 'api/dpop/token'),
];
// Single route
Route::get('/api/resource', ResourceController::class)
->middleware('dpop');
// With ired scopes (all must be present)
Route::delete('/api/orders/{id}', OrderDeleteController::class)
->middleware('dpop:write,admin');
// Route group
Route::middleware('dpop:read')->group(function () {
Route::get('/api/profile', ProfileController::class);
Route::get('/api/orders', OrderIndexController::class);
});