如果这个问题是noobish或一种重复,请相应地指导我。
我想知道如何实现这种身份验证?
我问是因为我很迷茫,不知道要搜索哪些关键字。在我看来,我计划在用户想要访问我的域时使用它(例如http://mysite.com和http://mysite.com/tools)。
如果这个问题是noobish或一种重复,请相应地指导我。
我想知道如何实现这种身份验证?
我问是因为我很迷茫,不知道要搜索哪些关键字。在我看来,我计划在用户想要访问我的域时使用它(例如http://mysite.com和http://mysite.com/tools)。
您要查找的关键字是:htaccess
, htpasswd
, .htaccess
。(假设你使用 apache)
最终,您会将.htaccess
文件放在要保护的目录中,并让它检查您的htpasswd
文件的要求。
例如:在我的服务器上,我不希望人们看到我的private
目录。
$ sudo htpasswd -c /etc/apache2/.htpasswd benjamin
请注意,benjamin
在上面的命令中,^ 是我们将用于登录的用户名。
.htpasswd
为了安全起见,我们希望该文件位于我们的 web 文件夹之外。
然后在我的private
目录中,我会放置一个.htaccess
包含以下内容的文件:
AuthUserFile /etc/apache2/.htpasswd
AuthGroupFile /dev/null
AuthName Authenticate
AuthType Basic
require user benjamin
它被称为 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