5

これが以前に尋ねられたかどうかはわかりませんが、loginTokens非常に大きくなり、クリーンアップを行わないとデータベースのサイズが大きくなります。これについて何が行われていますか?これを管理するために他の人が何をしているか。Meteor.users.servicesユーザーがログイン/ログアウトするたびに作成されるloginTokenの配列を持つデフォルトを参照しています

"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
            }
        ]
    }
4

3 に答える 3

3

これは Meteor の Google グループで何度か言及されていますが、優先度の高い問題ではありません。私の認証システムでは、ユーザーがログインするたびに 1 日以上経過したトークンを削除します。

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
  }
于 2013-07-04T16:22:31.817 に答える
2

参考までに、私はこれについて問題を報告しましたが、それを修正する保留中のプル リクエストがあります。

https://github.com/meteor/meteor/issues/891

于 2013-07-07T20:19:11.340 に答える