1

인증을 위해 서버에 챌린지를 제공하는 방법에 대해 혼란스러워합니다. RESTFul 아키텍처입니다. 어떻게 사용자 이름과 서버의 암호를 포함하는 도전을 제공 할 클라이언트에 이제서버에서 챌린지를받은 후 RESTFul 인증

function authenticate() 
    { 
     $realm = 'Logging'; 
     $users = array('admin' => 'mypass', 'guest' => 'guest'); 
     if (empty($_SERVER['PHP_AUTH_DIGEST'])) 
     { 
      header('HTTP/1.1 401 Unauthorized'); 
      //header('WWW-Authenticate: Digest realm="'.$realm.'",qop="auth",nonce="'.uniqid().'",opaque="'.md5($realm).'"'); 
      echo json_encode(array("realm"=>$realm,"qop"=>"auth","nonce"=>uniqid(),"opaque"=>md5($realm)));   
      exit;  
     } 

     // analyze the PHP_AUTH_DIGEST variable 
     if (!($data = MyFunction::http_digest_parse($_SERVER['PHP_AUTH_DIGEST'])) || !isset($users[$data['username']])) 
     die('Wrong Credentials!'); 

     // generate the valid response 
     $A1 = md5($data['username'] . ':' . $realm . ':' . $users[$data['username']]); 
     $A2 = md5($_SERVER['REQUEST_METHOD'].':'.$data['uri']); 
     $valid_response = md5($A1.':'.$data['nonce'].':'.$data['nc'].':'.$data['cnonce'].':'.$data['qop'].':'.$A2); 

     if ($data['response'] != $valid_response) die('Wrong Credentials!'); 
     // ok, valid username & password 
     echo 'You are logged in as: ' . $data['username']; 
     exit; 
    } 

: 내 서버에서, 나는이 반환 무엇입니까? 서버에서 얻은 값으로 수행해야 할 절차를 알려주십시오.

+0

서버 측에서 어떤 프레임 워크를 사용하고 있습니까? 클라이언트 (서비스, 응용 프로그램, 웹 브라우저 등)는 무엇입니까? –

+0

서버에서 나는 GWT를 사용하고있는 클라이언트에서 recess를 사용하고 있습니다. 실제로 인증을 수행하는 데 필요한 절차가 있습니까 ?? – Noor

답변

0

틈새를 좁히는 데 도움이되는 AJAX and jQuery을 사용하여 인증 프로세스를 완료하는 방법에 관한 비슷한 질문이 있습니다.