Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Middleware;
- use Closure;
- use App\Http\Helper\ResponseHelper as ResponseHelper;
- class BasicAuth
- {
- protected $responseHelper;
- public function __construct(ResponseHelper $responseHelper)
- {
- $this->responseHelper = $responseHelper;
- }
- /**
- * Handle an incoming request.
- *
- * @param \Illuminate\Http\Request $request
- * @param \Closure $next
- * @return mixed
- */
- public function handle($request, Closure $next)
- {
- $useBasicAuth = env('CONFIG_BASIC_AUTH', true);
- $basicAuthPassword = env('CONFIG_BASIC_AUTH_PASSWORD', 'admin');
- if ($useBasicAuth)
- {
- $AUTH_PASS = $basicAuthPassword;
- header('Cache-Control: no-cache, must-revalidate, max-age=0');
- $headerAuth = $request->header('Authorization');
- $httpAuth = str_replace('Basic ', '', $headerAuth);
- $has_supplied_credentials = false;
- $user = '';
- $pass = '';
- if(!empty($httpAuth))
- {
- $has_supplied_credentials = true;
- $decodeAuth = base64_decode($httpAuth);
- $arrDecode = explode(':', $decodeAuth);
- $user = $arrDecode[0];
- $pass = $arrDecode[1];
- }
- else if(!(empty($_SERVER['PHP_AUTH_USER']) && empty($_SERVER['PHP_AUTH_PW'])))
- {
- $has_supplied_credentials = true;
- $user = $_SERVER['PHP_AUTH_USER'];
- $pass = $_SERVER['PHP_AUTH_PW'];
- }
- $is_not_authenticated = (
- !$has_supplied_credentials ||
- $pass != $AUTH_PASS
- );
- if ($is_not_authenticated) {
- header('HTTP/1.1 401 Authorization Required');
- header('WWW-Authenticate: Basic realm="Access denied"');
- return $this->responseHelper->createJson(true, null, 401, "access denied", false, null);
- }
- $outlet_code = $user;
- if (!isset($outlet_code) || $outlet_code == null || $outlet_code == '' || empty($outlet_code)){
- header('HTTP/1.1 400 Outlet Code required');
- return $this->responseHelper->createJson(true, null, 400, "outlet code required", false, null);
- }
- }
- return $next($request);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement