本文整理汇总了PHP中auth::http_digest_parse方法的典型用法代码示例。如果您正苦于以下问题:PHP auth::http_digest_parse方法的具体用法?PHP auth::http_digest_parse怎么用?PHP auth::http_digest_parse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类auth
的用法示例。
在下文中一共展示了auth::http_digest_parse方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: auth_digest
/**
* Digest認証本体
* @static
*/
function auth_digest($realm, $auth_users)
{
// FIXME: なんかかっこ悪いロジックだぁ
if (!isset($_SERVER['PHP_AUTH_DIGEST']) || empty($_SERVER['PHP_AUTH_DIGEST'])) {
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Digest realm="' . $realm . '", qop="auth", nonce="' . uniqid() . '", opaque="' . md5($realm) . '"');
// キャンセルボタンを押下
unset($_SERVER['PHP_AUTH_DIGEST']);
return FALSE;
}
if (isset($_SERVER['PHP_AUTH_DIGEST']) && !($data = auth::http_digest_parse($_SERVER['PHP_AUTH_DIGEST']))) {
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Digest realm="' . $realm . '", qop="auth", nonce="' . uniqid() . '", opaque="' . md5($realm) . '"');
// キャンセルボタンを押下
unset($_SERVER['PHP_AUTH_DIGEST']);
return FALSE;
}
list($scheme, $salt, $role) = auth::get_data($data['username'], $auth_users);
if ($scheme != '{x-digest-md5}') {
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Digest realm="' . $realm . '", qop="auth", nonce="' . uniqid() . '", opaque="' . md5($realm) . '"');
// キャンセルボタンを押下
unset($_SERVER['PHP_AUTH_DIGEST']);
return FALSE;
}
// $A1 = md5($data['username'] . ':' . $realm . ':' . $auth_users[$data['username']]);
$A1 = $salt;
$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) {
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Digest realm="' . $realm . '", qop="auth", nonce="' . uniqid() . '", opaque="' . md5($realm) . '"');
// キャンセルボタンを押下
unset($_SERVER['PHP_AUTH_DIGEST']);
return FALSE;
}
return TRUE;
}
示例2: auth_digest
function auth_digest($auth_users)
{
if (!isset($_SERVER['PHP_AUTH_DIGEST']) || empty($_SERVER['PHP_AUTH_DIGEST'])) {
return false;
}
$data = auth::http_digest_parse($_SERVER['PHP_AUTH_DIGEST']);
if ($data === false) {
return false;
}
list($scheme, $salt, $role) = auth::get_data($data['username'], $auth_users);
if ($scheme != '{x-digest-md5}') {
return false;
}
// $A1 = md5($data['username'] . ':' . $realm . ':' . $auth_users[$data['username']]);
$A1 = $salt;
$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) {
return false;
}
return true;
}