3

如果这个问题是noobish或一种重复,请相应地指导我。

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

在此处输入图像描述

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

4

2 回答 2

8

您要查找的关键字是: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
于 2012-09-08T07:27:34.800 回答
1

它被称为 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

于 2012-09-08T07:30:00.693 回答