2010-05-25 22 views
24

Yani şu başlık kümesi vardır PHP'de gelen istek ayrıştırmak çalışıyorum:getiriliyor özel Yetkilendirme başlık

Authorization: Custom Username 

Basit bir soru: Yeryüzünde yapmak bunu bir elime nasıl ? Authorization: Basic ise, kullanıcı adını $_SERVER["PHP_AUTH_USER"]'dan alabilirim. X-Custom-Authorization: Username ise, kullanıcı adını $_SERVER["HTTP_X_CUSTOM_AUTHORIZATION"]'dan alabilirim. Ancak, bunların hiçbiri özel bir Yetkilendirme ile ayarlanmamıştır, var_dump($_SERVER), üstbilgiden bahsetmez (özellikle AUTH_TYPE eksiktir) ve PHP5 get_headers() gibi işlevler yalnızca giden isteklere verilen yanıtlarda çalışır. Ubuntu yüklemesi dışında Apache'de PHP 5 çalıştırıyorum.

cevap

35

Sadece Apache kullanacaksanız, apache_request_headers()'a bir göz atmak isteyebilirsiniz. belirteci göre kimlik doğrulaması için

+0

Works kullanarak Yetkilendirme kodu almak! – jpatokal

+0

@halfdan: else? nginx kullanıyorum ve üstbilgide yetki alamıyorum. – Divakarcool

32

: arka plan için

$token = null; 
    $headers = apache_request_headers(); 
    if(isset($headers['Authorization'])){ 
    $matches = array(); 
    preg_match('/Token token="(.*)"/', $headers['Authorization'], $matches); 
    if(isset($matches[1])){ 
     $token = $matches[1]; 
    } 
    } 
5

Authorization: {auth_code} gibi Üstbilginizi geçmek senin .htaccess

RewriteEngine On 
RewriteRule .* - [e=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

içine bu kodu ekleyin ve nihayet, güzelce sayesinde $_SERVER['HTTP_AUTHORIZATION']

İlgili konular