managerAuthMiddleware.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace App\Http\Middleware;
  3. use Closure;
  4. use Illuminate\Http\Request;
  5. use Illuminate\Support\Facades\Redirect;
  6. class managerAuthMiddleware
  7. {
  8. /**
  9. * Handle an incoming request.
  10. *
  11. * @param \Illuminate\Http\Request $request
  12. * @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
  13. * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
  14. */
  15. public function handle(Request $request, Closure $next)
  16. {
  17. if($this->get_auth()){
  18. return $next($request);
  19. } else {
  20. return Redirect::to('http://manager.stroyprofit.com');
  21. }
  22. }
  23. private function get_auth()
  24. {
  25. $user = session('user', false);
  26. // dd($user);
  27. if (!isset($user['id'])) {
  28. if(!isset($_COOKIE['ci_session'])) return false;
  29. $opts = array(
  30. 'http' => array(
  31. 'method' => "GET",
  32. 'header' => "Accept-language: en\r\n" .
  33. "Cookie: ci_session=" . $_COOKIE['ci_session'] . "\r\n"
  34. )
  35. );
  36. $context = stream_context_create($opts);
  37. $response = json_decode(file_get_contents('http://manager.stroyprofit.com/check_auth', false, $context), true);
  38. if ($response['auth'] != true) {
  39. return false;
  40. } else {
  41. session(['user' => $response['user']]);
  42. }
  43. }
  44. return true;
  45. }
  46. }