2014-04-11 74 views
0

我正在使用nginx反向代理綁定到MySQL數據庫存儲。我需要爲反向IMAP/SMTP代理編寫身份驗證服務。 nginx wiki上有兩個例子可以與大多數db,一個嵌入式perl和一個php腳本聯繫起來。我用Perl不familar和因爲我的HTTP使用PHP來綁回使用PDO語句mysql的,我更舒服的PHP腳本如下所示:nginx身份驗證到mysql後端

http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript

我的問題是,我不我知道我需要在函數內部輸入什麼,因爲它只是提到把你的邏輯放在這裏。如果你向下滾動一下,你會看到兩個函數:函數authuser和getmailserver。這些應該是PDO準備語句以選擇LIMIT 1的電子郵件嗎?

希望對此有所幫助。

+0

爲什麼你認爲你需要任何「nginx auth到mysql後端」?那是什麼後端? –

+0

對不起。我需要爲反向imap代理編寫身份驗證服務。我可以看到我沒有提到這一點,道歉。 – unixpipe

回答

0

如果這些是PDO準備語句

一般而言 - 是

選擇與限制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'; 
} 
+0

好吧我要儘快測試這個,但只是在SELECT語句上的一個簡短問題。您假設我的用戶表中的密碼列被稱爲「傳遞」正確?另外是「登錄」假設是用戶的用戶名,這意味着電子郵件?因爲這就是我的電子郵件。我們使用「email」作爲用戶名的列,因爲我們只將用戶存儲爲完整的電子郵件。最後,當你提到密碼哈希時,假設我們只使用md5,那麼我將如何重寫那個返回行?我會很快測試這個。謝謝! – unixpipe

+0

那麼,如果你需要確認*這樣的細節 - 那麼最好僱用一個程序員 –

+0

我必須同意你的意見 – unixpipe

相關問題