我是节点js的新手,我尝试创建一个简单的登录页面。但是当我运行我的代码时,它会将我带到登录页面。问题是当我输入用户名和密码时,它不会显示它应该显示的信息。
var express = require('express');
var sessions = require('express-session');
var session;
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
app.use(sessions({
secret: '2937#&&#',
resave: false,
saveUninitialized: true
}))
app.get('/login', function(req, resp){
session = req.session;
if(session.uniqueID){
resp.redirect('/redirects');
}
resp.sendFile('./files/login.html', {root: __dirname});
});
app.post('/login', function(req, resp){
// resp.end(JSON.stringify(req.body));
session = req.session;
if(session.uniqueID) {
resp.redirect('/redirects');
}
if(req.body.username == 'admin' && req.body.password == 'admin'){
session.uniqueID = req.body.username;
}
resp.redirect('/redirects');
});
app.get('/logout', function(req, resp){
req.session.destroy();
resp.redirect('/login');
});
app.get('/admin', function(req, resp){
session = req.session;
if(session.uniqueID != 'admin'){
resp.end('Unauthorised acess')
}
resp.end('You are good');
})
app.get('/redirects', function(req, resp){
session = req.session;
if(session.uniqueID =='admin') {
console.log(session.uniqueID)
resp.redirect('/admin');
} else {
resp.send(req.session.uniqueID + 'not found <a href="/logout">KILL SESSION</a>');
}
})
app.listen(1337, function() {
console.log('Listening at port 1337');
});
答案 0 :(得分:0)
没有任何事情发生,因为您无法重定向AJAX调用。您的POST可能有效,但是您的重定向指令无效。
尝试发送&#34;成功&#34;如果用户名和密码都很好(简单res.send('OK');
会这样做),然后在客户端将用户重定向到/redirects
(如果返回成功代码,则为window.location.replace('https://yoursite.com/redirects'));
。
这将由/redirects
的GET路由处理,您应该看到自己想要的内容。