如果这个问题是noobish或类似的重复,请指导我。
我想知道如何实现这种身份验证?
我在问,因为我很遗憾,不知道要搜索哪些关键字。在我看来,我计划在用户想要访问我的域时(例如http://mysite.com和http://mysite.com/tools)。
答案 0 :(得分:7)
您要查找的关键字是:htaccess
,htpasswd
,.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