Аутентификация пользователя PHP как логин роутера - PullRequest
4 голосов
/ 12 сентября 2011

как создать аутентификацию пользователя в php таким же образом, когда мы пытаемся войти в маршрутизатор.

enter image description here

при вводе URL-адреса, например, www.example.com/portal, должно появиться сообщение, подобное изображенному выше, с запросом имени пользователя и пароля.

что это за тип аутентификации. как кодировать это в php.

ПРИМЕЧАНИЕ: я должен полностью контролировать сервер, который я запускаю. поэтому есть ли специальный модуль, который нужно установить, я могу это сделать.

Ответы [ 3 ]

3 голосов
/ 12 сентября 2011

Это называется 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, если вы хотите какой-либо безопасности. Кроме того, в зависимости от вашего приложения вы увидите, что нет способа эффективно «выйти». Большинство браузеров запоминают имя пользователя / пароль для всего сеанса и отправляют его при каждом последующем запросе.

0 голосов
/ 12 сентября 2011

Это базовая http-аутентификация. Вы можете найти учебник на странице php.net: http://www.php.net/manual/en/features.http-auth.php

По сути, это заголовок http, который вы должны отправить в браузер. Сервер http (apache / nginx) перенаправит пользовательские данные в php, как и любой другой параметр $ _SERVER.

0 голосов
/ 12 сентября 2011

Проверьте эту статью: http://en.wikipedia.org/wiki/.htaccess Это на самом деле не имеет ничего общего с PHP.

Вам понадобятся два файла, .htaccess и .htpasswd, которые вы можете сгенерировать здесь: http://www.webmaster -toolkit.com / Htaccess-generator.shtml

...