我的登录例程使用护照js,express和angular有问题。虽然登录工作顺利但我想使用window对象存储当前登录的用户以进行身份验证。
使用护照验证用户名和密码后我使用的是successRedirect,触发index.render
// Set up the 'signin' routes
app.route('/signin')
.post(passport.authenticate('local', {
successRedirect: '/',
failureRedirect: '/signin',
failureFlash: true
}));
exports.render = function(req, res) {
// Use the 'response' object to render the 'index' view with a 'title' and a stringified 'user' properties
console.log('Window Object:',req.user);
res.render('index', {
title: 'Test',
user: JSON.stringify(req.user)
});
};
登录应用程序后, window.user 对象从null变为以下(index.ejs)。
<!-- Render AngularJS views -->
<header data-ng-include="'header.client.view.html'"></header>
<section data-ui-view></section>
<div id="contactform" data-ng-include="'contactform.client.view.html'"></div>
<footer data-ng-include="'footer.client.view.html'"></footer>
<!-- Render the user object -->
<script type="text/javascript">
window.user = {"_id":"55cb06e523d7d6680d14c215","provider":"local","firstName":"Karl","lastName":"Karl","email":"karl.karl@test.com","__v":0,"created":"2015-08-12T08:42:13.807Z","active":true,"fullName":"Karl Karl","id":"55cb06e523d7d6680d14c215"};
</script>
现在我在角度控制器中检索 window.user 对象时非常失败,因为只要我没有完成页面刷新,它就会被视为null。
<!-- Render the user object -->
<script type="text/javascript">
window.user = null;
</script>
现在的问题是,如何检索窗口对象,因为我想相应地更新我的角度视图,在标题中显示用户已登录?
答案 0 :(得分:0)
我认为您打算使用Angular服务来存储要在控制器之间共享的变量。对不起,我想我试图推动你使用Window对象存储状态的首选解决方案。
来自公共服务模块的一些示例代码
//var com_serv = angular.module('common.services')
com_serv.service('sharedProperties', function () {
var property = 'Not yet set';
return {
getProperty: function () {
return property;
},
setProperty: function (value) {
property = value;
}
};
});
相关的SO问题
how-can-i-pass-variables-between-controllers
how-to-pass-dynamic-data-from-one-module-controller-to-another-module-controller