nginx auth到mysql后端

时间:2014-04-11 16:23:50

标签: php mysql pdo nginx proxy

我正在使用nginx反向代理绑定到mysql数据库存储。我需要为反向IMAP / SMTP代理编写身份验证服务。 nginx wiki上有两个例子可以绑定到大多数db,一个嵌入式perl和一个php脚本。我不熟悉perl,因为我的http使用php绑定到使用PDO语句的mysql,我对这里看到的php脚本感觉更舒服:

http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

  

这些应该是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';
}