Это называется Basic Auth. Смотрите этот пример из документации:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;
} else {
echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
?>
http://php.net/manual/en/features.http-auth.php
По сути, вы отправляете правильные заголовки с кодом состояния 401 Unauthorized. браузер видит это вместе с вашим WWW-Authenticate
заголовком и запрашивает у вас пользователя. Как только это будет сделано, вы сможете увидеть имя пользователя и пароль в $_SERVER['PHP_AUTH_USER']
, а также $_SERVER['PHP_AUTH_PW']
.
Вы должны знать, что если вы используете базовую аутентификацию, имя пользователя / пароль отправляются в виде обычного текста. Вы должны использовать HTTPS, если вы хотите какой-либо безопасности. Кроме того, в зависимости от вашего приложения вы увидите, что нет способа эффективно «выйти». Большинство браузеров запоминают имя пользователя / пароль для всего сеанса и отправляют его при каждом последующем запросе.