2014-04-17 193 views
0

我正在使用'accounts-base'和'accounts-password'軟件包以及Accounts.createUser方法從登錄表單創建用戶(即,我沒有使用accounts-ui包)。流星帳戶 - 用戶註銷刷新

documentation解釋從而創建的用戶包括「服務」對象

「含有由特定的登錄服務所使用的數據,例如,其 復位字段包含由忘記密碼鏈接中使用的令牌,並且其 resume字段包含令牌,用於保持您在 會話之間登錄。「

這是真的,使用我的登錄表單創建的帳戶都有loginTokens。但是,當我刷新瀏覽器時,這些令牌將被刪除並且用戶已註銷。

該文檔似乎暗示resume-token由accounts-base/accounts-password包自動處理。我錯過了什麼?

Accounts.createUser({ 
     username: username, 
     email: username, 
     password: password 
    }, function (err) { 
     if (err) { 
     alert(err) 
     } else {    
     Router.go('/member/' + Meteor.userId() +'/edit')    
     } 
    }); 

創建:

"resume" : 
{ "loginTokens" : 
    [ 
    { 
    "when" : ISODate("2014-04-17T22:13:50.832Z"), 
    "hashedToken" : "KstqsW9aHqlw6pjfyQcO6jbGCiCiW3LGAXJaVS9fQ+o=" 
    } 
    ] 
} 

...但在刷新:

"resume" : { "loginTokens" : [ ] } }, 
+0

'Accounts.createUser'是一個服務器功能。你如何在回調中訪問'Router.go'客戶端功能?注意你在哪裏放置代碼... –

+0

根據[documentation](http://docs.meteor.com/#accounts_createuser),Account.createUser在客戶端和服務器上均可用。我在兩種情況下都使用它,但對於不同的問題,這個問題的結果是相同的:用戶被成功創建,創建了令牌,但刷新瀏覽器中的頁面會將用戶註銷並刪除令牌。我承認我不清楚應該發生什麼,但足以說我不希望用戶在頁面刷新時出於任何原因而被註銷。 –

回答

1

後我的代碼詳盡的審計,我發現,我是(白癡)調用Accounts.logout方法在註銷按鈕事件的範圍之外。它不知何故成爲'孤兒'在早期重新代碼的代碼

所以我所有的錯。