1

我想保护一个目录并针对 mysql 数据库对用户进行身份验证。我正在使用 lighttpd 并且无法找到这样做的方法。可能吗?

4

1 回答 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 回答