對於Accounts.forgotPassword()
和Accounts.sendVerificationEmail()
,生成令牌。帳號密碼電子郵件令牌是否過期?
該令牌是否過期?
如果是這樣,過了幾段時間?
對於Accounts.forgotPassword()
和Accounts.sendVerificationEmail()
,生成令牌。帳號密碼電子郵件令牌是否過期?
該令牌是否過期?
如果是這樣,過了幾段時間?
目前沒有與令牌過期有關的內置代碼,既沒有設置過期時間也沒有強制執行它。
電子郵件重置數據(令牌,電子郵件和令牌創建日期)被保存在用戶的記錄,因爲在the source可以看出:
var tokenRecord = {
token: token,
email: email,
when: when
};
Meteor.users.update(userId, {$set: {
"services.password.reset": tokenRecord
}});
因此,日期是在以下蒙戈選擇:
'services.password.reset.when'
不幸的是,所有的reset
數據,只要resetPassword
方法被調用正確的標記未設置。
這使得不可用的validateLoginAttempt
回調:
Accounts.validateLoginAttempt(function(options) {
if (options.methodName === 'resetPassword' && options.allowed === true) {
console.log('resetPassword', options.user.services.password.reset); //undefined
}
return true;
});
類似地,電子郵件驗證令牌被存儲在user.services.email.verificationTokens
,這(如果設置)是令牌記錄數組。
的日期,因此,在
'services.email.verificationTokens.when'
你可以,但是,與此信息定期很容易失效老令牌,或推出自己的本地叉子或賬戶密碼包。
'verificationToken'有一個創建時間戳,但沒有到期時間戳afaict。我知道驗證令牌或密碼重置令牌只能使用一次。 –
有趣的是,如果我使用了兩次令牌(再次點擊郵件鏈接),我得到這個錯誤消息:「錯誤:令牌過期[403]」誤導性措辭。 – Artfree
邁克爾 - 是否有可能獲得對verificationToken創建時間戳的訪問?如果是這樣,我可以創建我自己的令牌到期例程。謝謝。 – Artfree