2013-07-03 2 views
4

이전에 물어 본 적이 있지만 loginTokens이 실제로 커지면 클린업을하지 않아도 데이터베이스의 크기가 커지지는 않을지 확실하지 않습니다. 이것에 대해 무엇이 이루어지고 있습니까? 이것을 관리하기 위해 다른 사람들이하는 일. 나는 모든 시간을 만들어 얻을 loginTokens의 배열을 가지고 기본 Meteor.users.services를 참조하고 사용자가 로그인/아웃이는 유성 구글 그룹에서 여러 번 언급되었지만 그것은 높은 우선 순위의 문제가 아니다유성 인증을위한 로그인 토큰을 제거

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

답변

3

. 내 인증 시스템에서 사용자가 로그인 할 때마다 토큰을 하루 이상 지워 버립니다. 이렇게하면 잠시 로그인 할 수없는 경우 토큰이 만료되지 않도록 할 수 있습니다.

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 
    } 
+0

는이 파일에 https에서'registerLoginHandler' 방법을 재정의가 : // github.com/meteor/meteor/blob/master/packages/accounts-base/accounts_server.js///? 그렇다면 언제 어디에서 (Meteor.startup 클라이언트/서버) – Warz

+0

아니, 나는 그것을 무시하지 않을거야, 나는 그것을 부르고있다. 위의 코드 조각은 새로운 로그인 처리기를 정의하므로 사용중인 모든 인증 시스템으로 가져올 수 있습니다. (위 코드는 coffeescript이므로 동등한 자바 스크립트를 보려면 http://js2coffee.org를 시도하십시오. –

관련 문제