檢視原始碼 mix phx.gen.auth (Phoenix v1.7.14)
為資源產生驗證邏輯和相關檢視。
$ mix phx.gen.auth Accounts User users
第一個參數是情境模組,後接架構模組及其複數名稱(用作架構資料表名稱)。
mix phx.gen.auth
指南 中詳述了其他資訊和安全性考量。
LiveView 與慣例控制器和檢視
通過 --live
選項,驗證檢視可以產生為使用 LiveView,或者可以傳遞 --no-live
來使用慣例 Phoenix 控制器和檢視。
如果未提供這些選項,將顯示提示。
如果你計劃在你應用程式的其他地方使用 LiveView,那麼建議使用 --live
選項。在 LiveView 之間導航時的使用者體驗可以得到嚴格控制,使你可以在不每次都觸發新 HTTP 請求(這將導致網頁完整載入)的情況下讓你的使用者導航到驗證檢視。
密碼雜湊處理
密碼雜湊處理機制預設為對 Unix 系統使用 bcrypt
,對 Windows 系統使用 pbkdf2
。兩個系統都使用 Comeonin 介面。
可以用 --hashing-lib
選項覆寫密碼雜湊處理機制。支援下列值
bcrypt
- bcrypt_elixirpbkdf2
- pbkdf2_elixirargon2
- argon2_elixir
我們建議開發人員考慮使用 argon2
,它是所有 3 個當中最強大的。缺點是 argon2
非常消耗 CPU 和記憶體,你需要更強大的執行個體來執行你的應用程式。
有關選擇這些函式庫的更多資訊,請參閱 Comeonin 專案。
網頁命名空間
預設情況下,控制器和 HTML 檢視會由架構名稱命名空間化。你可以透過使用 --web
標幟傳遞一個模組名稱來自訂網頁模組命名空間,例如
$ mix phx.gen.auth Accounts User users --web Warehouse
將產生嵌套在 MyAppWeb.Warehouse
命名空間中的控制器、檢視、範本和關聯測試
lib/my_app_web/controllers/warehouse/user_auth.ex
lib/my_app_web/controllers/warehouse/user_confirmation_controller.ex
lib/my_app_web/controllers/warehouse/user_confirmation_html.ex
lib/my_app_web/controllers/warehouse/user_confirmation_html/new.html.heex
test/my_app_web/controllers/warehouse/user_auth_test.exs
test/my_app_web/controllers/warehouse/user_confirmation_controller_test.exs
- 等等...
多次呼叫
你可以呼叫這個產生器多次。在有不同資源會使用不同驗證工作流程時,這很有用
$ mix phx.gen.auth Store User users
$ mix phx.gen.auth Backoffice Admin admins
二進位身分識別碼
選項 --binary-id
會讓產生的變更使用 binary_id
作為主鍵和外來鍵。
預設選項
這個產生器使用應用程式 :generators
設定中提供的預設選項。以下是預設值
config :your_app, :generators,
binary_id: false,
sample_binary_id: "11111111-1111-1111-1111-111111111111"
你可以透過提供相對應的開關覆寫每個呼叫的這些選項,例如 --no-binary-id
可以在預設設定中使用一般身分識別碼。
自訂資料表名稱
預設情況下,遷移和架構的資料表名稱會是為資源提供的複數名稱。若要自訂這個值,可以使用 --table
選項。例如
$ mix phx.gen.auth Accounts User users --table accounts_users
這會讓產生的資料表被命名為 "accounts_users"
和 "accounts_users_tokens"
。