本篇文章更新時間:2019/02/16
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
HTTP 基本認證 在維基百科的介紹上雖然是個頗舊世代的機制,但在某些情境下還滿好用的說~
- 單一角色管理後台、
- Single Page、
- 專案前後端切割分明(一種連登入介面都不想做的概念)
其實綜合上述幾點,就是以活動網站這類型為主。後台也就是查看活動參與的資料,並對這些資料做一些增刪改不複雜的操作。
這機制的缺點有:
- 弱密碼(base64 encode)
- 沒有「登出」機制
- 因為使用
header
和伺服器做交握,所以各瀏覽器間的快取機制不一,無法妥善管理
但! 活動網站週期短、廣告也是針對精準客群打,光是設定後台路徑就像個密碼一樣~ 所以就決定是用這技術啦!
在這邊採用 Nginx
這套伺服器做管理,前端跟設計通常會是打頭陣實作好頁面給客戶驗收,但因為是活動頁面,有成效追蹤與調整的部分(對開發來說,調整就是最有影響之處),在避免因為後端實作而影響到前端調整頁面的困擾,技術上也是要切開,走API 架構設計。
此模式帶來的影響就是管理的後台頁,一樣前後端切開的話會需要在權限管理問題上多花一點功夫,不過如果從入口處就阻擋觀看到前端企業邏輯的話,那問題就好解多了!更還能將此活動網站模板化,加速下次活動案利用!
用後端一把罩的方式保護前端,達成前後端切割又不會因此把簡單網站複雜化的做法
Nginx 的路徑規則對應到前端製作的後台操作頁後補個 auth_basic
與 auth_basic_user_file
參數即可,如下
location =/this_is_cpanel.html {
try_files $uri =404;
auth_basic "Private Area";
auth_basic_user_file /path/to/password/file;
}
路徑指到密碼存放路徑就可以有效果囉!
至於密碼如何產生,Nginx 也把這問題列在常見問題中
另外還有線上工具:Htpasswd Generator
千萬別為了產生這簡單的密碼還跑去裝Apache的工具啊~XD
補充
這個基本驗證機制不一定需要從伺服器上操作,因為是協定間的機制,所以只要能產生對應的 header
與瀏覽器交握就好。參考: HTTP authentication with PHP