我正在使用Nginx反向代理绑定到mysql数据库存储。我需要为反向IMAP / SMTP代理编写身份验证服务。在nginx Wiki上有两个示例可以绑定到大多数数据库,一个嵌入式perl和一个php脚本。我不熟悉perl,并且由于我的http使用php将PDO语句绑定到mysql,因此我对php脚本更加满意,如下所示:

http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript

我的问题是我不完全知道我需要在函数内部输入什么,因为它只是提到将您的逻辑放在这里。如果向下滚动,将看到两个功能:authuser和getmailserver函数。这些应该是PDO准备语句以选择LIMIT 1的电子邮件吗?

希望对此有所帮助。

最佳答案

这些应该是PDO准备声明吗


一般来说-是的


  选择带有LIMIT 1的电子邮件?


我很怀疑。您不需要在这里发送电子邮件。对于authuser,您只需要布尔值

function authuser($user,$pass){
    global $pdo;
    $stmt = $pdo->prepare("SELECT pass FROM users WHERE login = ?");
    $stmt->execute([$user]);
    $dbpass = $stmt->fetchColumn();
    return ($dbpass === $pass); // use whatever hashing here
}


getmailserver必须返回服务器。如果你只有一个

function getmailserver($user) {
    return 'server';
}

关于php - nginx auth到mysql后端,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23017851/

10-14 16:22
查看更多