2014-01-16 51 views
1

我正在使用MEAN堆棧和PassportJS設置身份驗證方案,以通過OpenID提供程序對用戶進行身份驗證。當用戶未通過身份驗證時,我會顯示一條將用戶重定向到OpenID提供程序的鏈接。驗證後,我想用「Welcome {user}」這行代替鏈接。使用MEAN +護照更改基於用戶角色的視圖

目前,我能夠進行認證和機存儲返回的標識符這樣:

passport.serializeUser(function(user, done) { 
    done(null, user.identifier); 
}); 

passport.deserializeUser(function(id, done) { 
    User.findByIdAndUpdate(id, {}, { upsert: true }, function(err, user) { 
    done(err, user); 
    }); 
}); 

(?我正確地實現我的序列化和反序列化功能)

由此看來,用戶標識存儲爲一個cookie,也可以作爲數據庫中的一個關鍵字。現在在我的客戶端代碼中,根據用戶是否經過身份驗證,更改視圖(登錄 - >歡迎文本)的最佳方式是什麼?

回答

1

您可以檢查是否有用戶使用

req.isAuthenticated() 

呼叫在您的服務器端代碼,這個值在服務器端認證,並將結果傳遞到您的視圖或客戶端代碼中一些其他的方式,如有必要,可以單獨調用服務器的ajax。這來自PassportJS

在此找到答案: Documentation for "ensureAuthentication" "isAuthenticated" passport's functions?

+0

一旦我能夠告訴用戶是否在客戶端驗證,這將是一個很好的解決方案,以改變看法? – user2066880