我不确定以前是否有人问过这个问题,但是loginTokens
变得非常大并且没有任何清理会使我的数据库大小增加。对此我们正在做什么?其他人正在做什么来管理这个问题?我指的是默认的Meteor.users.services
其中有一个loginTokens数组,每次用户登录/注销时都会创建这些loginTokens
"resume" : {
"loginTokens" : [
{
"token" : "HMntXepqzPBLDGkGX",
"when" : 1372559065392
},
{
"token" : "uCHqA95HZZyN5tRtH",
"when" : 1372563545565
},
{
"token" : "sNGZhhATTrTg8582w",
"when" : 1372622561176
},
{
"token" : "hPWpm4uQQXWrkK6NS",
"when" : 1372634411432
},
{
"token" : "DFntTEcsKKT6bJ3rx",
"when" : 1372635411745
},
{
"token" : "BBM3acLQhuNtsHvkn",
"when" : 1372638979158
},
{
"token" : "EHgLLHMh6JWxKfuoe",
"when" : 1372825386462
}
]
}
这在 Meteor 谷歌群组中已被多次引用,但这不是一个高优先级问题。在我的身份验证系统中,每当用户登录时,我都会删除超过一天的令牌。这可以确保令牌在用户一段时间内未登录时不会过期。
Accounts.registerLoginHandler (loginRequest) ->
# ... Do whatever you need to do to authenticate the user
stampedToken = Accounts._generateStampedLoginToken();
Meteor.users.update userId,
$push: {'services.resume.loginTokens': stampedToken}
# Delete old resume tokens so they don't clog up the db
cutoff = +(new Date) - (24*60*60)*1000
Meteor.users.update userId, {
$pull:
'services.resume.loginTokens':
when: {$lt: cutoff}
},
{multi : true}
return {
id: userId,
token: stampedToken.token
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)