当我们尝试登录路由器时,如何在php中创建用户身份验证.
当我输入网址,例如www.example.com/portal时,应该有一个提示,如上面的图像询问用户名和密码.
这是什么类型的身份验证.如何在PHP中编码.
注意:我必须完全控制我运行的服务器.那么有没有需要安装的特殊模块我可以做到这一点.
最佳答案 这称为基本身份验证.请参阅文档中的此示例:
<?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’]中看到用户名和密码.
您应该知道,如果您使用的是基本身份验证,则会向用户名/密码发送plaint-text.如果您想要任何类型的安全性,则必须使用HTTPS.此外,根据您的应用程序,您将看到无法有效“注销”.大多数浏览器都会记住整个会话的用户名/密码,并在每个后续请求中发送它.