Advertisement
Guest User

basicaouth

a guest
Feb 26th, 2020
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.42 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Middleware;
  4.  
  5. use Closure;
  6. use App\Http\Helper\ResponseHelper as ResponseHelper;
  7.  
  8. class BasicAuth
  9. {
  10.     protected $responseHelper;
  11.  
  12.     public function __construct(ResponseHelper $responseHelper)
  13.     {
  14.         $this->responseHelper = $responseHelper;
  15.     }
  16.  
  17.     /**
  18.      * Handle an incoming request.
  19.      *
  20.      * @param  \Illuminate\Http\Request  $request
  21.      * @param  \Closure  $next
  22.      * @return mixed
  23.      */
  24.     public function handle($request, Closure $next)
  25.     {
  26.         $useBasicAuth = env('CONFIG_BASIC_AUTH', true);
  27.         $basicAuthPassword = env('CONFIG_BASIC_AUTH_PASSWORD', 'admin');
  28.  
  29.         if ($useBasicAuth)
  30.         {
  31.             $AUTH_PASS = $basicAuthPassword;
  32.  
  33.             header('Cache-Control: no-cache, must-revalidate, max-age=0');
  34.  
  35.             $headerAuth = $request->header('Authorization');
  36.             $httpAuth = str_replace('Basic ', '', $headerAuth);
  37.             $has_supplied_credentials = false;
  38.  
  39.             $user = '';
  40.             $pass = '';
  41.  
  42.             if(!empty($httpAuth))
  43.             {
  44.                 $has_supplied_credentials = true;
  45.                 $decodeAuth = base64_decode($httpAuth);
  46.                 $arrDecode = explode(':', $decodeAuth);
  47.  
  48.                 $user = $arrDecode[0];
  49.                 $pass = $arrDecode[1];
  50.             }
  51.             else if(!(empty($_SERVER['PHP_AUTH_USER']) && empty($_SERVER['PHP_AUTH_PW'])))
  52.             {
  53.                 $has_supplied_credentials = true;
  54.  
  55.                 $user = $_SERVER['PHP_AUTH_USER'];
  56.                 $pass = $_SERVER['PHP_AUTH_PW'];
  57.             }
  58.  
  59.             $is_not_authenticated = (
  60.                 !$has_supplied_credentials ||
  61.                 $pass != $AUTH_PASS
  62.             );
  63.  
  64.             if ($is_not_authenticated) {
  65.                 header('HTTP/1.1 401 Authorization Required');
  66.                 header('WWW-Authenticate: Basic realm="Access denied"');
  67.                 return $this->responseHelper->createJson(true, null, 401, "access denied", false, null);
  68.             }
  69.  
  70.             $outlet_code = $user;
  71.             if (!isset($outlet_code) || $outlet_code == null || $outlet_code == '' || empty($outlet_code)){
  72.                 header('HTTP/1.1 400 Outlet Code required');
  73.                 return $this->responseHelper->createJson(true, null, 400, "outlet code required", false, null);
  74.             }
  75.         }
  76.  
  77.         return $next($request);
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement