需要用户名和密码

时间:2012-09-08 07:24:34

标签: php apache .htaccess .htpasswd

如果这个问题是noobish或类似的重复,请指导我。

我想知道如何实现这种身份验证?

enter image description here

我在问,因为我很遗憾,不知道要搜索哪些关键字。在我看来,我计划在用户想要访问我的域时(例如http://mysite.comhttp://mysite.com/tools)。

2 个答案:

答案 0 :(得分:7)

您要查找的关键字是:htaccesshtpasswd.htaccess。 (假设你使用apache)

最终,您会在要保护的目录中放置.htaccess文件,并让它使用您的htpasswd文件检查要求。

例如:在我的服务器上,我不希望人们看到我的private目录。

$ sudo htpasswd -c /etc/apache2/.htpasswd benjamin

注意上面命令中的benjamin ^是我们用来登录的用户名。

为了安全起见,我们希望在我们的网络文件夹之外使用.htpasswd文件。

然后在我的private目录中,我放了一个包含此文件的.htaccess文件:

AuthUserFile /etc/apache2/.htpasswd
AuthGroupFile /dev/null
AuthName Authenticate
AuthType Basic
require user benjamin

答案 1 :(得分:0)

称为HTTP身份验证

http://en.wikipedia.org/wiki/Basic_access_authentication

http://php.net/manual/en/features.http-auth.php

发送WWW-Authenticate标头以提示进行身份验证

<?php header('WWW-Authenticate: Basic realm="My Realm"');?>

以下$_SERVER变量

中将提供身份验证凭据

用户名 - $_SERVER['PHP_AUTH_USER'] 密码 - $_SERVER['PHP_AUTH_PW']

确认用户名和密码,如果不匹配,请将HTTP/1.0 401 Unauthorized状态设置为失败,或再次发送WWW-Authenticate标题以再次提示。

正如本杰明所说,你也可以使用auth模块

http://httpd.apache.org/docs/2.2/howto/auth.html#gettingitworking