文件
一個 專案

basicauth

啟用 HTTP 基本驗證,可使用使用者名稱和雜湊密碼來保護目錄和檔案。

請注意,基本驗證在純文字 HTTP 上並不安全。決定要使用 HTTP 基本驗證保護哪些內容時,請自行斟酌。

當使用者要求受保護的資源時,如果使用者尚未提供使用者名稱和密碼,瀏覽器會提示使用者輸入。如果授權標頭中存在正確的憑證,伺服器將授予對資源的存取權。如果標頭遺失或憑證不正確,伺服器將回應 HTTP 401 未授權。

Caddy 設定不接受純文字密碼;您必須在將密碼放入設定中之前對其進行雜湊。caddy hash-password 命令可以協助執行此作業。

驗證成功後,將可以使用 {http.auth.user.id} 佔位符,其中包含已驗證的使用者名稱。

語法

basicauth [<matcher>] [<hash_algorithm> [<realm>]] {
	<username> <hashed_password> [<salt_base64>]
	...
}
  • <hash_algorithm> 是此設定中雜湊使用的密碼雜湊演算法(或 KDF)的名稱。預設值:bcrypt

  • <realm> 是自訂領域名稱。

  • <使用者名稱> 是使用者名稱或使用者 ID。

  • <雜湊密碼> 是密碼雜湊。

  • <salt_base64> 是密碼 salt 的 base-64 編碼,如果需要外部 salt。這僅適用於現在已不建議使用的 scrypt 演算法。可能會移除。

範例

要求對所有對 example.com 的請求進行驗證

example.com {
	basicauth {
		# Username "Bob", password "hiccup"
		Bob $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG
	}
	respond "Welcome, {http.auth.user.id}" 200
}

保護 /secret/ 中的檔案,以便只有 Bob 可以存取它們(其他人可以查看其他路徑)

example.com {
	root * /srv

	basicauth /secret/* {
		# Username "Bob", password "hiccup"
		Bob $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG
	}

	file_server
}