对于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