用户登录页面使用passport.js

时间:2015-10-17 19:33:49

标签: passport.js mean-stack

我在MEAN应用程序中使用passportjs进行身份验证。

我很困惑我如何在页面刷新时识别用户是否已登录。目前我将用户数据存储在$ rootScope中,所以如果我不重新加载它就可以了。但是当我重新加载页面时,$ rootScope被清除,因此在这种情况下如何获取用户信息。

Cookie是由护照设置的,目的是什么,我可以使用该cookie进行身份验证,如果是,如何进行身份验证?

1 个答案:

答案 0 :(得分: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>

然后在您的控制器中检查用户对象是否存在,将$ window注入依赖

if($window.user) {
    $rootScope.user = $window.user;
}