2011-11-07 94 views
6

我使用nginx和auth_basic模塊保護我的開發服務器,但我似乎無法找到一種方法來指定「身份驗證」過期的時間間隔。nginx auth_basic時間限制

我希望能夠強制nginx每6小時要求一次密碼。有沒有辦法做到這一點?如果不是,什麼是可接受的解決方法?

回答

5

這可能是不可能的。似乎沒有關於nginx HttpAuthBasicModule page的任何文檔建議您可以超時基本HTTP身份驗證。

HTTP specification對於Authorization標頭也沒有指定超時機制。如果您需要超時,我不指望您能夠依賴基本身份驗證,除非您也正在面向Web應用程序。

如果您面向一個Web應用程序,您可以在Cookie中維護一個會話,並在一段時間不活動後超時。會話超時完成後,使用Web應用程序發送以下標題:

HTTP/1.1 401 Unauthorized 
WWW-Authenticate: Basic Realm="MyApp" 

這將提示瀏覽器再次要求輸入憑據。如果您需要訪問您的Web應用程序中的用戶身份,您應該REMOTE_USER CGI環境變量中找到它。

要使用此技術有效地提供靜態資產,XSendfilemight be useful

+0

CGI不自動提供'REMOTE_USER'。你可以通過'fastcgi_param REMOTE_USER $ remote_user;'來設置它。 – bzeaman