我正在使用基本身份驗證dash_auth 構建 Dash 應用程式。不幸的是,這需要硬編碼用戶名和密碼字典。這不是一個大問題,因為該應用程式僅供內部使用。
現在我們想通過自動跟蹤 GitHub 存盤庫的一個分支來將其部署到 Heroku,因為這似乎最方便。問題是這需要我們將硬編碼的密碼也放入 Github 存盤庫中。
這篇文章建議對令牌和客戶端密鑰使用環境變數,但我應該如何為密碼字典執行此操作?
我也對替代解決方案持開放態度。
謝謝
uj5u.com熱心網友回復:
使用字典執行此操作時,沒有什么真正改變。您只需要將 JSON 字串決議為 Python 資料結構。
在您的應用程式中,而不是像檔案中所示對字典進行硬編碼:
VALID_USERNAME_PASSWORD_PAIRS = {
'hello': 'world'
}
將其從環境中拉入,例如:
import json
import os
VALID_USERNAME_PASSWORD_PAIRS = json.loads(os.getenv("VALID_USERNAME_PASSWORD_PAIRS"))
然后將您的用戶名設定為 Heroku config vars:
heroku config:set VALID_USERNAME_PASSWORD_PAIRS='{"hello": "world"}'
此處的單引號應避免您的 shell 解釋特殊字符的大多數問題。
對于本地開發,您可以設定一個VALID_USERNAME_PASSWORD_PAIRS環境變數,例如,.env如果您使用的工具能夠理解這一點,則可以通過檔案。
本地開發的另一個選擇是通過添加引數將默認值硬編碼到腳本中default:
VALID_USERNAME_PASSWORD_PAIRS = json.loads(
os.getenv("VALID_USERNAME_PASSWORD_PAIRS", default='{"local": "default"}')
)
請注意,我們在這里給出default一個字串,而不是一個字典,因為我們將結果傳遞給json.loads().
請注意最后一個選項,因為您可能會在未設定環境變數的情況下意外發布代碼,在這種情況下,本地默認憑據將起作用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434795.html
