1
我對如何向服務器提供驗證挑戰感到困惑。這是一個RESTFul體系結構。從我的服務器,我回到這一點:從服務器獲取挑戰後的REST無法驗證
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;
}
現在在客戶端上,我該如何提供挑戰包含用戶名和密碼的服務器?告訴我需要使用從服務器獲取的值執行的過程。
你在服務器端使用什麼框架?什麼是客戶端(服務,應用程序,網絡瀏覽器等)? –
在服務器上,我使用的凹槽中,我使用GWT在客戶端上,其實,我只是需要的程序進行認證? – Noor