File manager - Edit - /var/www/html/spdc/api/app/Http/Middleware/AuthSSO.php
Back
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; use Illuminate\Http\JsonResponse; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Cache; class AuthSSO { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse */ public function handle(Request $request, Closure $next) { $token = $request->bearerToken(); if (is_null($token) || empty($token)) { return response()->json([ 'message' => 'Unauthorized.' ], JsonResponse::HTTP_UNAUTHORIZED); } $cacheKey = 'user_' . md5($token); if (!Cache::has($cacheKey)) { $response = Http::withHeaders([ 'Accept' => 'application/json', 'Authorization' => 'Bearer ' . $token, 'App' => env('CLIENT_APP_KEY') ])->get(env('AUTH_SERVICE_URL') . '/api/session'); if ($response->status() != JsonResponse::HTTP_OK) { return response()->json($response->json(), $response->status()); } /** * Adicionar informações do usuário autenticado na request que irá entrar */ $userData = $response['data']; $request->merge(['user' => $userData]); Cache::put($cacheKey, $userData, now()->addMinutes(10)); } else { $request->merge(['user' => Cache::get($cacheKey)]); } return $next($request); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings