身分

協助使用者註冊

註冊表單通常是訪客在網站上與表單的第一次互動。 設計良好的註冊表單至關重要,安全表單更是不可或缺。

查看註冊表單,瞭解如何協助使用者在網站上註冊。

盡量簡化註冊表單,只顯示建立帳戶所需的表單控制項。請勿重複使用表單控制項,協助使用者正確填寫帳戶詳細資料。改為傳送確認電子郵件。

帳戶詳細資料

您可以使用適當的 autocomplete 屬性,協助使用者填寫帳戶詳細資料。在電子郵件欄位中使用 autocomplete="email",並在新密碼欄位中使用 autocomplete="new-password"

進一步瞭解自動填寫輸入控制項

您也可以提供顯示密碼 <button>,協助使用者輸入安全密碼。進一步瞭解顯示密碼模式

保護註冊表單

請勿以純文字格式儲存或傳輸密碼。請務必加鹽並雜湊處理密碼,且不要嘗試自行設計雜湊演算法

提供多重驗證,尤其是在儲存個人或私密資料時。簡訊 OTP 最佳做法使用 WebAuthn 啟用高強度驗證說明如何導入多重驗證。

確保使用者不會使用遭外洩的密碼。舉例來說,您可以使用「Have I Been Pwned」的 API 偵測遭外洩的密碼,並建議使用者填寫其他新密碼,或在密碼遭外洩時向他們發出警告。

協助使用者登入

瞭解如何建構登入表單,確保使用者可以登入網站。

將註冊和登入按鈕放在顯眼的位置。 確認表單可在觸控裝置上使用:

  • 按鈕的輕觸目標大小至少為 48 像素。
  • 表單元素的大小font-size夠大 (20px 在行動裝置上大小適中)。
  • 表單控制項之間有足夠的空間 (margin),且輸入內容夠大 (在行動裝置上至少使用 padding: 15px)。

協助使用者填寫電子郵件地址和密碼

協助瀏覽器和密碼管理工具自動填入帳戶詳細資料。 電子郵件欄位請使用 autocomplete="email",目前密碼欄位請使用 autocomplete="current-password"

如要協助使用者手動填寫帳戶詳細資料,請使用 type="email" ,在行動裝置上顯示電子郵件欄位的適當螢幕小鍵盤。

請為電子郵件和密碼欄位使用 required 屬性,以便在使用者提交表單時,警告無效值。建議使用即時驗證,協助使用者在輸入無效資料後立即修正,不必等到提交表單。

確保使用者能看到輸入的密碼

為尊重使用者隱私,系統預設會遮蓋您填入 <input type="password"> 的文字。顯示 <button>,讓使用者切換輸入文字的顯示狀態,方便輸入密碼。

進一步瞭解如何導入密碼顯示圖示 <button>

確認登入和註冊表單可正常使用

定期請真人測試登入和註冊表單,確保驗證功能正常運作。 使用 Analytics 和實際使用者評估 (RUM) 收集欄位資料,並使用 LighthousePageSpeed Insights 等工具自行執行測試。進一步瞭解如何測試可用性收集分析資料

確認表單在不同瀏覽器和平台都能正常運作。 只使用鍵盤,或使用螢幕閱讀器 (例如 Mac 上的 VoiceOver 或 Windows 上的 NVDA),在不同螢幕大小的裝置上測試表單。

協助使用者變更帳戶設定

確認使用者可以變更所有帳戶設定,包括電子郵件地址、密碼和使用者名稱。

清楚說明您儲存的資料,並協助使用者隨時下載所有個人資料。確保使用者可以視需要刪除帳戶。 在某些地區,這類帳戶管理功能可能是法律規定。

確保使用者可以更新密碼

讓使用者更容易更新密碼。

要求使用者先提供目前的密碼,再變更密碼,並傳送電子郵件通知使用者密碼已變更,同時提供還原及鎖定帳戶的選項。

新增要求新密碼的選項,並考慮提供要求新密碼的 .well-known 網址

資源