-
-
Save mariogarcia-ar/d58d216483bb55765bdc662d07396107 to your computer and use it in GitHub Desktop.
[deprecated] PHP - How to get and set Bearer Token
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* ALERT! There are more than ten years since I wrote the first version (adaptation) of this code with PHP 5.6, | |
* then I changed my code stack and I couldn't mantain this code anymore. Ten years ago worked like a charm. | |
* Fell free to test, use, fork, update, etc. and if possible put in the comments how to fix, | |
* if it doesn't work for you as it is, so other people could find answers. | |
**/ | |
/** | |
* Get hearder Authorization | |
**/ | |
function getAuthorizationHeader(){ | |
$headers = null; | |
if (isset($_SERVER['Authorization'])) { | |
$headers = trim($_SERVER["Authorization"]); | |
} | |
else if (isset($_SERVER['HTTP_AUTHORIZATION'])) { //Nginx or fast CGI | |
$headers = trim($_SERVER["HTTP_AUTHORIZATION"]); | |
} elseif (function_exists('apache_request_headers')) { | |
$requestHeaders = apache_request_headers(); | |
// Server-side fix for bug in old Android versions (a nice side-effect of this fix means we don't care about capitalization for Authorization) | |
$requestHeaders = array_combine(array_map('ucwords', array_keys($requestHeaders)), array_values($requestHeaders)); | |
//print_r($requestHeaders); | |
if (isset($requestHeaders['Authorization'])) { | |
$headers = trim($requestHeaders['Authorization']); | |
} | |
} | |
return $headers; | |
} | |
/** | |
* get access token from header | |
* */ | |
function getBearerToken() { | |
$headers = getAuthorizationHeader(); | |
// HEADER: Get the access token from the header | |
if (!empty($headers)) { | |
if (preg_match('/Bearer\s(\S+)/', $headers, $matches)) { | |
return $matches[1]; | |
} | |
} | |
return null; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment