2015-10-17 97 views
0

我在我的MEAN應用程序中使用passportjs進行身份驗證。用戶使用passport.js登錄頁面重新加載MEAN應用程序

我只是混淆了我如何識別用戶登錄或不刷新頁面。目前我正在將用戶數據存儲在$ rootScope中,所以如果我不重新加載,它正在工作。但是,當我重新加載頁面$ rootScope得到清除,所以在這種情況下我如何獲得用戶信息。

cookie由護照設置,這是什麼目的,我可以使用該cookie進行身份驗證,如果是,如何?

+0

如何在第一時間獲取用戶數據到$ rootScope呢? – Molda

+0

當用戶第一次登錄,然後成功我將用戶的詳細信息保存到rootcope –

+0

因此,你使用一些/登錄路由的權利?你可以創建路由/用戶並使用ajax來檢查用戶是否登錄。if(req.user)res.json(req.user); – Molda

回答

1

你可以設置一個路由/user和角檢查,如果用戶登錄

app.get('/user', function(req, res, next){ 
    if(req.user) return res.json(req.user); 
    res.json({error: 'not logged in}); 
}); 

,或者當您使其

app.get('/', function(req, res, next){ 
    res.locals.user = req.user || null; 
    res.render('index'); 
}); 

,並在視圖中(我用注入用戶頁面車把)

<html> 
    <head> 
    <script> 

    {{#if user}} 
     var user = { 
     username: {{user.name}}, 
     email: {{user.email}} 
     } 
    {{/if}} 

    </script> 
    </head> 
    <body> 

    </body> 
</html> 

然後在你的控制器中檢查用戶對象是否存在,注入$窗口作爲依賴關係

if($window.user) { 
    $rootScope.user = $window.user; 
} 
相關問題