檢視原始碼 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 選項覆寫密碼雜湊處理機制。支援下列值

我們建議開發人員考慮使用 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"