2013-03-12 23 views
3

目前,我有一個的Node.js應用服務我的服務器端模板語言我的靜態/login & /index HTML頁面(在這種情況下)。我想在成功驗證後返回有關當前登錄用戶的數據,因此骨幹網可以開始渲染內容。的Node.js和Backbone.marionette初始視圖

例如,我在蒙戈一個UserGroup文件存儲關於它們屬於(授權信息)的User和哪個組的信息。

With 護照,我可以驗證我的用戶並將其重定向到主頁面。

app.post('/login', 
    passport.authenticate(
    'local', 
    { 
     successRedirect: '/', 
     failureRedirect: '/login', 
     failureFlash: true 
    } 
) 
); 

重定向後,如何能夠將數據發送關於用戶是骨幹將在/骨幹路線的最初呈現回暖?

即使它不是主動發起第一個請求或使用關於用戶的元數據的會話,這是否會是res.send()

回答

0

您需要從客戶端獲得一個打開的請求。嘗試查看socket.io以維持頁面和服務器之間的連接。如果這太多了,可以嘗試使用骨幹網進行AJAX請求,並讓服務器「保持」請求,直到登錄成功,然後在準備就緒時發送響應。但是,將ajax請求與登錄請求進行匹配將會是一個挑戰。

+0

如果不使用socket.io,那麼骨幹構建登錄和註銷請求視圖會出現什麼問題。它只是沒有坐在我身邊,因爲這些頁面是匿名的意見,我真的不希望任何骨幹代碼啓動之前認證用戶 – Warz 2013-03-12 20:24:34

+0

這將是好 – Max 2013-03-13 10:58:55

+0

我已經嘗試使用骨幹權利從一開始,它不真的很好,我最終在客戶端使用業務邏輯來確定用戶是誰,並確定要呈現哪個視圖,佈局。 – Warz 2013-03-13 14:08:56

0

我認爲經過身份驗證的用戶將擁有與他相關的cookie。您可以解析cookie並在應用程序初始化時構建全局用戶對象。或者,您可以在頁面上的腳本標記中以json格式發送用戶詳細信息,並使用該信息構建currentUser對象。我不知道這是否是這樣做的最好方法;我正在自己調查。很想聽到關於這方面的想法/反饋。