【发布时间】:2015-07-24 22:39:02
【问题描述】:
我已经使用 angular-passport 中的文件结构和编码实践在现有项目中实现了一个使用 angular、express 和 passport.js 的简单登录系统。
目前,我成功注册并登录了用户。但是,当我刷新页面时,用户会注销。我知道我需要在浏览器上存储一个 cookie 才能让它工作,而且我也知道如何在代码中实现它。我的问题是放在哪里。
在我的routes.js 我有以下内容:
var express = require('express'),
auth = require('./auth');
var router = express.Router();
var tools = require('../controllers/tools');
router.get('/api/tools/category/:name', tools.category);
router.get('/api/tools/:id', tools.show);
router.get('/api/tools', tools.all);
router.post('/api/tools', tools.create);
// router.get('api/search/:term', tools.search);
var users = require('../controllers/users');
router.get('/api/users/:id', users.show);
router.get('/api/users', users.all);
router.post('/api/users', users.create);
// Session Routes
var session = require('../controllers/session');
router.get('/api/session', auth.ensureAuthenticated, session.session);
router.post('/api/session', session.login);
router.delete('/api/session', session.logout);
module.exports = router;
在 angular-passport repo 中,作者在文件末尾添加了另一条路线:
router.get('/*', function(req, res) {
if(req.user) {
res.cookie('user', JSON.stringify(req.user.user_info));
}
res.render('index.html');
});
但是,当我将它放入我的代码中时,这个函数永远不会被调用,因为它已经使用了之前声明的其他路由之一。有人可以帮忙吗?
【问题讨论】:
标签: javascript node.js express passport.js