【发布时间】:2016-10-22 20:21:48
【问题描述】:
我正在尝试通过前端表单将 CouchDB 用户登录到我的快速应用程序并将登录信息存储在会话中。到目前为止有以下内容:
app.js:
var express = require('express');
var couchUser = require('express-user-couchdb');
var session = require('express-session');
var login = require('./routes/login');
var app = express();
app.use(couchUser({
users: 'http://localhost:5984/_users',
request_defaults: {
auth: {
user: 'admin',
pass: 'adminpw'
}
}
}));
app.use(session({ secret: 'secretstring'}));
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', login);
在我的 login.js 中:
var express = require('express');
var router = express.Router();
var couchUser = require('express-user-couchdb');
/* GET users listing. */
router.get('/', function(req, res, next) {
res.render('login', {title: 'Login'});
});
router.post('/login', function(req, res) {
// Don't know what to put here
//res.send(req.body.username)
});
module.exports = router;
我不知道如何继续我的 login.js 路线。任何帮助表示赞赏。
更新 - 由于我不完全理解它而无法让下面的代码工作,因此研究引导我找到以下解决方案:
router.post('/', function(req, res) {
var options = {
url: 'http://localhost:5984/_session',
method: 'POST',
json: {
"name": "admin",
"password": "password"
}
};
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log('authenticated');
}else{
console.log('not authenticated');
res.redirect('/')
}
});
});
当我通过 HttpRequester 执行相同的请求时,我得到 Statuscode 200 和 {"ok":true,"name":null,"roles":["_admin"]} .. 但通过 nodejs 它不会这样做即使它应该是一样的?!?
【问题讨论】:
标签: javascript session authentication express couchdb