使用php我驗證一個用戶,然後在幕後,他們再次用一個.htaccess用戶名&密碼進行身份驗證。這對所有用戶都是一樣的,但我不希望他們再次輸入用戶名和密碼,他們現在將被允許進入密碼保護目錄。我不喜歡使用http://[email protected]:somedomain.com。.htaccess從一個php腳本的身份驗證,以防止瀏覽器對話框
有什麼想法?
使用php我驗證一個用戶,然後在幕後,他們再次用一個.htaccess用戶名&密碼進行身份驗證。這對所有用戶都是一樣的,但我不希望他們再次輸入用戶名和密碼,他們現在將被允許進入密碼保護目錄。我不喜歡使用http://[email protected]:somedomain.com。.htaccess從一個php腳本的身份驗證,以防止瀏覽器對話框
有什麼想法?
你不應該這樣做。
或者:
代碼添加到您的.htaccess保護的目錄來使用你的PHP認證方案並刪除.htaccess驗證。
編寫一個新的PHP頁面/腳本,通過它您的經過驗證的用戶將訪問所有受保護的內容。將受保護的內容移出Web根目錄,或使用.htaccess文件拒絕所有訪問。您的腳本將能夠訪問這些文件,但用戶必須通過腳本才能訪問它們。
對不起,我不相信這是可能的(除非你想使用用戶名:pass @ url方案)。你可以在後臺編寫一些Ajax,這意味着瀏覽器會記住該區域的權限(也許,我從來沒有真正嘗試過)。但是無論如何你仍然需要用戶名/密碼。
爲了不在瀏覽器上以明文形式傳輸密碼的安全性(我假設您使用https通過網絡傳輸密碼,或者如果您不是,您應該!)我認爲這會有點惱人用戶,但在我看來並不是很大的麻煩。
當然,您可以在PHP中的其他文件夾上進行身份驗證,這可以解決問題,或者使用一個HTTP身份驗證將所有受保護的代碼放在一個位置,但是我認爲您不希望(或不能)做這個。
如果您想避免多次登錄但需要HTTP身份驗證,則只能使用對於實際登錄的HTTP身份驗證。這是因爲PHP可以發佈並響應這些頭文件。
http://php.net/manual/en/features.http-auth.php
通過這種方式,用戶會收到一個彈出,PHP可以讀取它,並作出相應的反應,瀏覽器將與消除進一步提示,後續的請求通過。
注意:此解決方案不適用於CGI版本的PHP。