2

我跟着這個例子 - >https://github.com/visionmedia/express/tree/master/examples/authExpressjs如何顯示/隱藏,以防用戶一個div其登錄

工作正常,但我不喜歡他們顯示你成功登錄或註銷的內容一個時間的方式。

它有其他方式做X或Y一次性用戶它的認證?例如

我有登錄的直線形狀,將是很好的隱藏該div它的認證一次的用戶,但我不能這樣做

$(document).ready(function(){ 
    if(req.session.user) { $(.class of teh frm to hide).hide(); } 
} 

我嘗試過 session.user

所有的時間告訴我它未定義。我把它放在佈局上。

那麼,如果我在視圖上顯示的東西,如果用戶的身份驗證,或者,如果用戶它的管理?

因爲ATM我看到的唯一方法是authorizate一些路線,並通過

req.session.success = 'Authenticated as ' + req.session.user.name 
    + ' click to <a href="/logout">logout</a>. ' 
    + ' You may now access <a href="/restricted">/restricted</a>.'; 
} 

顯示具體內容認爲它不是要走的路。

回答

6

最好使用模板引擎來顯示不同的內容,而不是客戶端的JavaScript。如果您使用的玉器,請執行下列操作:

在你app.js創建傳遞給每一個觀點,如果用戶登錄一個變量:

app.use(function(req, res, next){ 
    // all the stuff from the example 
    if (req.session.user) { 
    res.locals.user = req.session.user 
    } 
    next(); 
}); 

使用此變量在你的模板引擎(例如玉):

if user 
    // show stuff here 
else 
    // for everyone else 
+0

應該不會是'app.locals.user'而不是'res.locals.user'還是有實際上是一個不同的範圍是什麼? –

+0

即使4年後,這對我也有效。謝謝! – jeremytripp