我在MEAN应用程序中使用passportjs进行身份验证。
我很困惑我如何在页面刷新时识别用户是否已登录。目前我将用户数据存储在$ rootScope中,所以如果我不重新加载它就可以了。但是当我重新加载页面时,$ rootScope被清除,因此在这种情况下如何获取用户信息。
Cookie是由护照设置的,目的是什么,我可以使用该cookie进行身份验证,如果是,如何进行身份验证?
答案 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;
}