ResetPassword 指令
重設或更新資料庫中的密碼。
這個指令:
- 可供登錄使用者和管理者來更新他們本身的密碼。
- 可供想登入而忘了密碼的登錄使用者在沒有登入的情況下重設他們的密碼。之後,會將隨機產生的密碼透過電子郵件傳給該訪客使用者。
請搭配 SSL(安全 Sockets 層次)使用此指令,以確保客戶的登入密碼與個人資訊皆經過加密。其做法是鍵入指令與 HTTPS 安全通信協定。

參數值
- http://host_name/path/
- WebSphere Commerce Server 與架構路徑的完整名稱
- langId
- 設定或重設在階段作業期間的屬意語言;
有關商店的支援語言可在 STORELANG 表格中找到。
- forUser
- 將代替其執行指令之使用者的登入 ID;只有具備客戶服務代表存取群組(安全職務)的人員可指定這個參數。
- forUserId
- 與 forUser 相同,但卻是 USERS 表格中之內部使用者 ID 所指的使用者。
- URL
-
當指令順利完成時所要呼叫的 URL
- storeId
- 商店的參考號碼
- reLogonURL
- 當發生錯誤狀況時 ResetPassword 指令將重新導向至這個指定的 URL
- logonId
-
密碼將重設之使用者的登入 ID
- challengeAnswer
-
檢核問題的回答;用以確認使用者的身份
- logonPassword
- 使用者的新密碼
- logonPasswordOld
-
使用者的現行密碼
- logonPasswordVerify
-
使用者的驗證密碼,必須和 logonPassword 相同
範例 1
這個範例是藉由提供 logonId 和檢核回答給想要更新密碼的已登錄使用者,
以重設密碼:
https://myhostname/webapp/wcs/stores/servlet/ResetPassword?url=basemall.jsp
&logonId=a&challengeAnswer=a
如果使用者是登錄客戶或管理者,
它會檢查舊密碼是否正確,以及新密碼是否符合驗證密碼。它也會驗證密碼符不符合這位使用者密碼原則所定義的需求。
如果所有條件都符合,就會以新密碼來更新資料庫。
範例 2
這個範例藉由指定舊密碼和新密碼給忘記其已登錄使用者密碼的訪客使用者,
以重設密碼:
https://myhostname/webapp/wcs/stores/servlet/ResetPassword?url=basemall.jsp
&logonPasswordOld=a&logonPassword=b&logonPasswordVerify=b
如果使用者是訪客,指令會檢查檢核問題的回答是否吻合資料庫中的回答。
如果相符,則會產生隨機密碼、更新資料庫並將密碼以電子郵件傳送給客戶
(亦即 logonId 參數值所指的客戶)。
規則
- 此指令會呼叫下列的作業指令:
- 指令會檢查必要的參數。如果參數遺漏或無效,它會設定其中一個具有適當錯誤碼的錯誤作業。
- 如果使用者是訪客,它會檢查檢核問題的回答符不符合資料庫中的回答。
如果相符,則會產生隨機密碼、更新資料庫並將密碼以電子郵件傳送給客戶
(亦即 logonId 參數值所指的客戶)。
- 如果使用者是登錄客戶或管理者,
它會檢查舊密碼是否正確,以及新密碼是否符合驗證密碼。它也會驗證密碼符不符合這位使用者密碼原則所定義的需求。
如果所有條件都符合,就會以新密碼來更新資料庫。
- 當指令順利完成時,會呼叫指定的 URL。
- 已取得重設密碼指令所產生之密碼的使用者在第一次使用之後,必須變更他們的密碼。
- 密碼重設指令會建立一個臨時密碼,這種臨時密碼必須在第一次登入時變更,
不過,這只適用使用者是和 WebSphere Commerce 資料庫做鑑別。
異常狀況
一旦發生錯誤狀況,假設您在 reLogonURL 參數中有指定一個錯誤 URL,
則 ResetPassword 指令會重新導向至該 URL,並根據要求放置一個錯誤碼。否則,
如果您未使用 reLogonURL 參數,
指令將會擲出 ECApplicationException,
並視使用者身份重新導向至一個錯誤檢視畫面。您可以使用 ErrorDataBean 類別取得錯誤碼。
如果必要的參數遺漏或不正確,ResetPassword 指令會根據要求者的身份,
設定下列錯誤碼之一。如果您有使用 reLogonURL 參數,
這些錯誤碼會加到指定的錯誤 URL 中:
取決於身份而定的錯誤檢視畫面:
- 已登錄使用者
- ResetPasswordRegisterErrorView
- 訪客使用者
- ResetPasswordGuestErrorView
錯誤狀況與相關的錯誤碼:
指令要求者 |
錯誤狀況與相關的錯誤碼 |
訪客或已登入的使用者。 |
- 遺漏 URL 參數。
- ECSecurityConstants.ERR_MISSING_REDIRECTURL
附註:在此情況下,指令會重新導向至 ResetPasswordView 錯誤檢視畫面。 |
訪客 |
- 遺漏 logonId。
- ECSecurityConstants.ERR_MISSING_LOGONID
- logonId 不屬於有效的已登錄使用者。
- ECSecurityConstants.ERR_INVALID_LOGONID
- 未提供檢核回答。
- ECSecurityConstants.ERR_MISSING_CHALLENGEANSWER
- 所提供的檢核回答不正確。
- ECSecurityConstants.ERR_INVALID_CHALLENGEANSWER
- 遺漏提供的 logonLd 的電子郵件位址。
- ECSecurityConstants.ERR_MISSING_EMAIL
- 使用者帳戶停用。
- ECSecurityConstants.ERR_DISABLED_ACCOUNT
|
已登入的使用者 |
- 遺漏 logonPasswordOld 參數。
- ECSecurityConstants.ERR_MISSING_OLDPASSWORD
- 遺漏 logonPassword 參數。
- ECSecurityConstants.ERR_MISSING_NEWPASSWORD
- 遺漏 logonPasswordVerify 參數。
- ECSecurityConstants.ERR_MISSING_NEWPASSWORDVERIFY
- logonPassword 與 logonPasswordVerify 參數不相符。
- ECSecurityConstants.ERR_MISMATCH_PASSWORDS
- 已登入使用者所提供的舊密碼不正確。
- ECSecurityConstants.ERR_INVALID_OLDPASSWORD
- 密碼長度太短。
- ECSecurityConstants.ERR_MINIMUMLENGTH_PASSWORD
- 這個類型所能使用的連續字元數目大於容許的上限。
- ECSecurityConstants.ERR_MAXCONSECUTIVECHAR_PASSWORD
- 這個類型所能使用的字元出現次數大於所容許的上限。
- ECSecurityConstants.ERR_MAXINTANCECHAR_PASSWORD
- 密碼的字母未達數目下限。
- ECSecurityConstants.ERR_MINIMUMLETTERS_PASSWORD
- 密碼的位數未達數目下限。
- ECSecurityConstants.ERR_MINIMUMDIGITS_PASSWORD
- 密碼和使用者 ID 不相符。
- ECSecurityConstants.ERR_USERIDMATCH_PASSWORD
- 密碼不能和先前的密碼相同。
- ECSecurityConstants.ERR_REUSEOLD_PASSWORD
- 使用者帳戶停用。
- ECSecurityConstants.ERR_DISABLED_ACCOUNT
|
錯誤處理碼是 ECConstants.EC_ERROR_CODE。
