2014-01-31 33 views
0

我正沿着例如書籍「Packtpub.Getting.Started.with.Meteor.js」借閱圖書館的應用程序如下。如何在用戶註銷後刪除數據?

http://matloob.lendlib.meteor.com

它工作正常,但是當用戶註銷時,一類是開放的,正在顯示它的項目,該類別及其項目保留在網頁上,而其餘部分被過濾:它是在運行出。在刷新頁面時,剩餘的類別也被過濾掉。

的發佈功能是:

Meteor.publish("Categories", function() { 
    Meteor.flush(); // I added this so it will flush out the remaining data, but :(

    return lists.find({owner: this.userId}, {fields: {Category: 1}}); 
}); 

回答

0

很難指出確切的漏洞全無看到更多的代碼,但是這是我能找到的:即使沒有登錄爲一個可以設置用戶會話變量current_list一個ID來獲得相應的列表文件:

Session.set("current_list",'ZLREaTCPiC6E7ece3') 

所以我認爲地方在你的代碼發佈給其ID列表的詳細信息。

至少這可以解釋爲什麼在列表即使選擇一個類別(這反過來又意味着current_list擁有一個id)註銷後仍然存在。

可能發佈列表使用Deps.autorun,因爲一旦會話變量改變列表被立即發佈完成。

也許你可以找到那段代碼併發布它,或者只是更改它,以便它還包括檢查用戶是否是該列表或類別的所有者。

0

考慮使用user-status包監聽用戶註銷,並在服務器上做一些清理的結果:

https://github.com/mizzao/meteor-user-status

Specfically,您可以使用下面的回調:

UserStatus.on "sessionLogout", (advice) -> 
    console.log(advice.userId + " with session " + advice.sessionId + " logged out") 
相關問題