2016-09-20 3 views
0

페이지 헤더에서 권한 부여를 가져 오려고합니다. 나는이 사이트에서 발견 된 몇 가지 해결책을 시도했지만 그렇지는 않았다. 다음은 내 예제 코드페이지 헤더에서 승인을 가져 오는 방법은 무엇입니까?

header('Authorization: Token '.sha1("test123")); 
var_dump(apache_request_headers()); 
exit; 

는 헤더에서 인증을 인출 할 수있다? 또는 그것을 가져 오는 다른 어떤 방법?

+0

@deepwinter [들어오는 PHP 요청에서 맞춤 인증 헤더 가져 오기] (http://stackoverflow.com/questions/2902621/fetching-custom-authorization-header-from-incoming-php-request/16311684)에서이 대답을 확인하십시오. # 16311684) – chirag

+0

@chirag 답장을 보내 주셔서 감사합니다.하지만 그 방법을 사용해 보았습니다. 결과가 없습니다 – Amiyar

+0

누구든지 제발 도와 드릴까요? – Amiyar

답변

1

댓글을 추가했지만 명성으로 허용되지 않습니다.

저는 오래 전에이 문제를 가지고 있었으며 PHP/Apache 구성과 관련이 있다고 생각합니다. Authorization 헤더는 특정 PHP/Apache 구성에서 응용 프로그램에 도달하기 전에 제거됩니다. 해결 방법은 .htaccess (또는 가상 서버)에 다시 쓰기를 추가하는 것이 었습니다.

나는 나의 해상도의 세부 사항을 기억 해달라고하지만, 당신의 .htaccess이 추가 도움이 될 수 있습니다 :

RewriteEngine On RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

내가 다른 응용 프로그램 (심포니 프레임 워크)가

는이 대신 사용

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

기본 승인을 시도 했습니까 - 작동하는지 확인 했습니까? 이 같은 헤더를 만듭니다

$username = 'username'; 
    $password = 'password'; 

    $auth = base64_encode($username.':'.$password); 
    $auth_header = 'Basic '.$auth; 

위의 코드를 사용하는 경우, $의 auth_header는 "기본 dXNlcm5hbWU6cGFzc3dvcmQ ="

되며 전체 헤더 '인증 : 기본 dXNlcm5hbWU6cGFzc3dvcmQ ='될 것

당신이 당신의 헤더에, PHP에서 사용할 수 있음을 보내는 경우 :

var_dump('username is: '.$_SERVER['PHP_AUTH_USER'] . ' and password is: ' . $_SERVER['PHP_AUTH_PW']); 

올바른 방향이 수도 적어도 지점 당신.

내가보기에 또 다른 것은 위의 테스트 코드가 응답 헤더를 설정하는 것처럼 보이지만 요청 헤더를 var_dumping하는 것입니까? 나는 당신의 테스트가 당신이 덤프하려고 시도하고있는 실제 요청을 보내는 별도의 파일/어플리케이션/브라우저를 필요로한다고 가정하고있다.

기본 승인을 사용하는 경우 브라우저는 OPTIONS 비행 요청을 보낼 수 있으며 그 다음 요청이 전송되기 전에 서버 측에서 처리해야 할 수도 있습니다.

+0

시도했지만 작동하지 않습니다. – Amiyar

+0

updated 내 응답 – laney

+0

고마워, 제발 또한 질문을 upvote. – Amiyar

관련 문제