30 lines
707 B
PHP
Executable File
30 lines
707 B
PHP
Executable File
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Modules\Helpdesk\Http\Middleware;
|
|
|
|
use Closure;
|
|
use Illuminate\Http\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
final class VerifyHelpdeskSyncToken
|
|
{
|
|
public function handle(Request $request, Closure $next): Response
|
|
{
|
|
$expected = (string) config('helpdesk.sync.accept_token', '');
|
|
|
|
if ($expected === '') {
|
|
abort(503, 'Helpdesk remote sync is not enabled on this host.');
|
|
}
|
|
|
|
$provided = (string) $request->bearerToken();
|
|
|
|
if ($provided === '' || ! hash_equals($expected, $provided)) {
|
|
abort(401, 'Invalid Helpdesk sync token.');
|
|
}
|
|
|
|
return $next($request);
|
|
}
|
|
}
|