2015-10-27 37 views
1

我寫了一個流星應用程序與用戶登錄。用戶註銷後,應用程序將重定向到用戶登錄頁面。但是,當它們是應用程序處於活動狀態(並且用戶已登錄)的瀏覽器(或多個瀏覽器窗口)中的多個選項卡時,只有活動選項卡或瀏覽器窗口會返回到用戶登錄頁面。在另一個窗口中,用戶似乎仍然登錄。但是,當用戶在另一個窗口中執行一些進一步的工作時,再也無法與服務器上的數據庫同步。我認爲Meteor.logout()是被動的,所以其他瀏覽器選項卡或窗口不會刷新的可能性如何? ?其他瀏覽器窗口不會返回到用戶登錄頁面後Meteor.logout()

我在我的路由器folowwing js文件:

var filters = { 
isLoggedIn : function(pause) { 
    if(!Meteor.user()){ 
    this.render('login'); 
    } else { 
    this.next(); 
    } 
} 

.... 

} 

Router.onBeforeAction(filters.isLoggedIn); 

按下注銷按鈕後,以下的js代碼被執行

Meteor.logout(); 

感謝您的幫助。

+0

你能按照點擊「註銷」改變,你知道是什麼反應和地方把那個抗元件它總是被渲染(比如在頁面的頁眉或在你的'{{> yield}}'之前)? –

+0

首先,我創建了自己的用戶界面以進行登錄。要測試您要求的內容,我已更改我的代碼:現在,我使用Meteor帳戶系統中的accounts-ui包與{{> loginButtons}}模板結合使用。當我推送「退出」時,它應該是被動的。當我在「顯微鏡」應用程序(來自Meteor書)中嘗試這個時,它就是。當我在我的應用程序中嘗試此操作時,不幸的是它不是。另外,當我在控制檯中運行命令Meteor.logout時,活動的瀏覽器窗口會註銷,但在其他瀏覽器窗口中,什麼都不會發生。 – Quantum

回答

0

試試這個:

Meteor.logoutOtherClients 

Meteor.logoutOtherClients應該註銷所有會話。它適用於用戶在多臺設備上登錄並同時註銷所有設備的情況。

0

在我的應用程序中,我不想在註銷時使用全局重定向,但在某些模板重定向到另一個模板時,如果註銷發生。

繼Autumn Leonard的評論之後,我通過創建template.mytemplate.onCreated函數使特定模板反應,並在其中放置了一個檢查Meteor.user()並執行重定向的自動運行功能。

我希望這種方法幫助別人:)

相關問題