我想保护一个目录并针对 mysql 数据库对用户进行身份验证。我正在使用 lighttpd 并且无法找到这样做的方法。可能吗?
问问题
1925 次
1 回答
2
您可以使用 mod_auth,这是相关的文档页面
由于它无法直接访问数据库,我建议使用“htdigest”方法,并从您的数据库用户重新生成文件。
'htdigest' 格式只是:“用户:领域:md5(密码)”,如页面中所述。
从 php 脚本生成这样的文件应该非常简单。伪代码:
foreach ($users as $user) {
// $user['md5pass'] = md5($user['password']);
$line = sprintf("%s:%s:%s\n", $user['username'], 'protected', $user['md5pass']);
file_put_contents('htdigest-file', $line, FILE_APPEND);
}
此外,在同一页面,这里是 mod_auth 的示例 lighttpd 配置:
auth.backend = "htdigest"
auth.backend.htdigest.userfile = "lighttpd-htdigest.user"
auth.require = ( "/download/" =>
(
# method must be either basic or digest
"method" => "digest",
"realm" => "download archiv",
"require" => "user=agent007|user=agent008"
),
"/server-info" =>
(
# limit access to server information
"method" => "digest",
"realm" => "download archiv",
"require" => "valid-user"
)
)
于 2009-09-26T10:55:47.923 回答