Node-RED Dashboard 2.0 本身並沒有獨立的帳號密碼登入功能。如果你希望在使用 Dashboard 時要求用戶輸入帳號及密碼,可以採取以下兩種做法:
方法一:使用 Node-RED 的 httpNodeAuth 認證
編輯設定檔
找到 Node-RED 的設定檔 settings.js
(通常位於 ~/.node-red/
目錄下),並開啟編輯。
設定 httpNodeAuth
在 settings.js
中加入或修改 httpNodeAuth
設定,例如:
httpNodeAuth: {user:"your_username", pass:"$2a$08$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},
其中,pass
欄位的值必須是用 bcrypt 算法產生的雜湊值。你可以使用 Node-RED 內建的工具或線上 bcrypt 工具來產生該雜湊。
重新啟動 Node-RED
儲存設定檔後,重啟 Node-RED。這時,當使用者透過瀏覽器存取 Dashboard(預設路徑為 /ui
)時,系統會自動彈出 HTTP 基本認證視窗,要求輸入設定的帳號及密碼。
注意: 採用 httpNodeAuth 會對所有透過 HTTP 端點提供的內容生效,不僅限於 Dashboard。
方法二:利用反向代理設定認證
如果你不想修改 Node-RED 的設定,另一個做法是使用反向代理伺服器(例如 Nginx 或 Apache)來實作基本認證:
架設反向代理
在反向代理伺服器上設定將特定路徑(例如 /ui
)轉發給 Node-RED 伺服器。
設定基本認證
在反向代理的設定中加入帳號密碼認證機制,使得當使用者存取 Dashboard 時,先由反向代理要求輸入正確的帳號及密碼,再將請求轉發給 Node-RED。
這種方法可以讓你僅針對 Dashboard 實作認證,而不影響 Node-RED 其他 HTTP 端點。
小結
由於 Node-RED Dashboard 2.0 沒有內建獨立的登入機制,因此建議依照你的需求來選擇:
- 若要保護所有 HTTP 端點:可使用 Node-RED 的
httpNodeAuth
功能。
- 若只想保護 Dashboard:可在反向代理上配置基本認證,實現更細部的控制。
參考文件可參考 Node-RED 官方「Securing Node-RED」說明:
https://nodered.org/docs/user-guide/runtime/securing-node-red
希望以上解答對你有幫助!