nginx认证到mysql后端

rmbxnbpk  于 2023-01-25  发布在  Mysql
关注(0)|答案(1)|浏览(132)

我正在使用Nginx反向代理绑定到MySQL数据库存储。我需要为反向IMAP/SMTP代理编写一个身份验证服务。
Nginx wiki上有两个例子可以与大多数数据库绑定:一个嵌入式Perl和一个PHP脚本。我不熟悉Perl,因为我的HTTP服务器使用PHP通过PDO语句与MySQL绑定,所以我更习惯使用PHP脚本,如下图所示:
Using a PHP Script on an Apache Server as the IMAP Auth Backend
我的问题是,我不知道我需要在函数中输入什么,因为它只是提到把你的逻辑放在这里。如果你向下滚动一点,你会看到两个函数:authusergetmailserver。这些是否应为PDO准备语句以选择包含LIMIT 1的电子邮件?
会很感激你的帮助。

5f0d552i

5f0d552i1#

这些是否应为PDO准备语句
一般来说-是的
选择限制为1的电子邮件?
我不这么认为。这里你不需要电子邮件。对于authuser你只需要boolean

function authuser($user,$pass){
    global $pdo;
    $stmt = $pdo->prepare("SELECT pass FROM users WHERE login = ?");
    $stmt->execute([$user]);
    $dbpass = $stmt->fetchColumn();
    return password_verify($pass, $dbpass); // should be hashed this way 
}

getmailserver必须返回服务器.如果你只有一个那么

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

相关问题