我正在构建API端点。此端点需要通过HTTP基本身份验证保护。
如果API请求访问我想显示http basic auth,如果数据不正确,我想抛出403禁止消息。如果数据正确,我现在只是显示“正确”。这是我的代码:
$username = null;
$password = null;
// if data is sent
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']) ) {
$username = $_SERVER['PHP_AUTH_USER'];
$password = $_SERVER['PHP_AUTH_PW'];
//perforn check if data is correct
if($username == 'as' && $password = 'pass'){
die(var_dump("correct"));
}
//if data uncorrect throw 403 code
else
header('HTTP/1.0 403 Forbidden');
}
//request HTTP auth if nothing sent
if (!isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['PHP_AUTH_PW'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
die();
}
目前我的代码一直在触发403。知道如何解决这个与上述要求相匹配的问题吗?
答案 0 :(得分:1)
你错过了一个=
,它正在测试你的作业:
if($username == 'as' && $password == 'pass'){ //right here
die(var_dump("correct"));
} else { //if data incorrect throw 403 code
header('HTTP/1.0 403 Forbidden');
}