ProAuthenticated.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace App\Http\Middleware;
  3. use App\Models\AppSession;
  4. use Closure;
  5. use Illuminate\Support\Facades\Http;
  6. class ProAuthenticated
  7. {
  8. /**
  9. * Handle an incoming request.
  10. *
  11. * @param \Illuminate\Http\Request $request
  12. * @param \Closure $next
  13. * @return mixed
  14. */
  15. public function handle($request, Closure $next)
  16. {
  17. $sessionKey = '836a7e15-1193-481d-b3b5-f3f3f9c6c478';
  18. $appSession = AppSession::where('session_key', $sessionKey)->where('is_active', true)->first();
  19. $authenticated = $sessionKey && $appSession;
  20. //TODO: confirm app_access
  21. if (!$authenticated) {
  22. $authUrl = config('stag.authUrl');
  23. if(!$authUrl){
  24. echo('AUTH_URL is not specified.');
  25. exit;
  26. }
  27. return redirect($authUrl . '?from=fe2');
  28. }
  29. //log session activity
  30. $this->logSessionActivity($sessionKey);
  31. return $next($request);
  32. }
  33. private function logSessionActivity($sessionKey)
  34. {
  35. $url = config('stag.backendUrl') . '/session/ping';
  36. $response = Http::asForm()
  37. ->withHeaders([
  38. 'sessionKey' => $sessionKey
  39. ])
  40. ->post($url,[])
  41. ->body();
  42. return $response;
  43. }
  44. }