簡體   English   中英

使用操作系統用戶名/密碼在 PHP 中進行身份驗證?

[英]Authenticate in PHP with OS username/password?

我想知道是否有一種方法可以使用 PHP(或者可能是其他一些 CGI,但最好是 PHP)來使用他們的操作系統(在這種情況下,Linux、Debian 5)用戶名和密碼來驗證用戶。 可能的? 難的? 謝謝!

通常這種東西是特定於操作系統的,並且會與現有的身份驗證程序掛鈎。 對於 Linux,您可能需要查看 PAM... PAM 有一個PECL 模塊可以幫助您完成此任務。 我想您必須配置 PAM 以允許這種類型的身份驗證,因此它可能需要一些系統管理工作。

如果您的意思是在服務器上使用他們的登錄憑據,則取決於身份驗證的處理方式(主要是使用 PAM 后端之一)

那么最簡單的方法是使用http://pecl.php.net/package/PAM

這樣做的唯一方法是使用 php exec() 命令執行某種登錄。

我不是系統管理員,所以我不知道該命令是什么,但是如果您能找到登錄命令,則可以使用 PHP 傳遞該命令,然后解析結果。

雖然這是一個 10 年前的問題,但在我今天搜索同樣的問題時出現了。

如果它對任何人有幫助,以下是我為我的用例(Raspberry Pi 上的 Debian)解決它的方法:

function checkLogin($user, $password) {
    return exec("echo $password | su $login -c 'echo Yes'") == 'Yes';
}

毫無疑問,它可以得到改進(例如,對 $user/$password 值進行理智檢查)但我正在分享,因為它可能會幫助某人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM