PHP базовая аутентификация setHeader, если данные неверны

Я строю конечную точку API. Эта конечная точка должна быть защищена базовой аутентификацией HTTP.

Если API запрашивает доступ, я хотел бы показать базовую авторизацию http, если данные неверны, я бы хотел выбросить запрещенное сообщение 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

Решение

Вы скучаете по одному = который превращает ваш тест в задание:

if($username == 'as' && $password == 'pass'){ //right here
die(var_dump("correct"));
} else { //if data incorrect throw 403 code
header('HTTP/1.0 403 Forbidden');
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]