InternalApiToken.php 805 B

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Http\Request;
  5. use Symfony\Component\HttpFoundation\Response;
  6. class InternalApiToken
  7. {
  8. public function handle(Request $request, Closure $next): Response
  9. {
  10. $expected = (string) env('INTERNAL_API_TOKEN', '');
  11. if ($expected === '') {
  12. return response()->json([
  13. 'success' => false,
  14. 'error' => 'INTERNAL_API_TOKEN not configured',
  15. ], 500);
  16. }
  17. $provided = (string) $request->header('X-Internal-Token', '');
  18. if (!hash_equals($expected, $provided)) {
  19. return response()->json([
  20. 'success' => false,
  21. 'error' => 'Unauthorized',
  22. ], 401);
  23. }
  24. return $next($request);
  25. }
  26. }