Javascript Node.js+;express+;passport(后端)/jQuery(前端)
我正在使用html/css+javascript/jQuery编写一个网站 目前,我正在做一个注册+登录/注销服务,但我被卡住了 这是我的jQuery登录代码(前端): 这是我的node.js+express+passport代码(后端): 问题是当我使用邮递员时,一切都很好。 但是当我在我的网站上点击登录按钮时,什么也没有发生,也没有错误Javascript Node.js+;express+;passport(后端)/jQuery(前端),javascript,jquery,node.js,express,passport.js,Javascript,Jquery,Node.js,Express,Passport.js,我正在使用html/css+javascript/jQuery编写一个网站 目前,我正在做一个注册+登录/注销服务,但我被卡住了 这是我的jQuery登录代码(前端): 这是我的node.js+express+passport代码(后端): 问题是当我使用邮递员时,一切都很好。 但是当我在我的网站上点击登录按钮时,什么也没有发生,也没有错误 有人能帮我吗?根据标记,jquery中使用的ID正确吗?您在浏览器的“网络”选项卡中看到了什么?是否至少发送了AJAX请求?是的,两个AJAX请求都已发送,
有人能帮我吗?根据标记,jquery中使用的ID正确吗?您在浏览器的“网络”选项卡中看到了什么?是否至少发送了AJAX请求?是的,两个AJAX请求都已发送,我可以通过morgan看到。对于postman,当我执行带有标题“Authorization=JWT token”的GET请求并在URL末尾添加“?role=Owner”时,主体包含account.html页面。。。可能是服务器重定向问题
// Login form
$(function() {
$('#login_btn').click(function() {
$.ajax({
url : '/login',
type : 'POST',
dataType : 'json',
data : {
username : $('#login_username').val(),
password : $('#login_password').val()
},
cache : false,
timeout : 5000,
success: function(data) {
if (data.reponse == 'success') {
createCookie('token', data.token, 7);
$.ajax({
url :"/account",
type:'GET',
headers : { "Authorization" : readCookie('token') },
dataType: 'json',
data: {
role: data.role
},
success: function(data, status) {
console.log("Status " + status);
console.log(data);
}
});
}
else {
if (data.msg == 'user not found') {
display_login_alert(false, 'user_not_found');
}
else if (data.msg == 'wrong password') {
display_login_alert(false, 'wrong_password');
}
else {
display_login_alert(false, 'unknown');
}
}
},
error: function() {
display_login_alert(false, 'unknown');
}
});
});
});
app.post('/login', (req, res) => {
User.findOne({
username: req.body.username
}, (err, user) => {
if (err)
throw err;
if (!user) {
res.send({reponse: 'error', msg: 'user not found'});
}
else {
// check if password matches
user.comparePassword(req.body.password, (err, isMatch) => {
if (isMatch && !err) {
// if user is found and password is right create a token
var token = jwt.sign(user, config.secret, { expiresIn: 21600 });
// return the information including token as JSON
res.json({
reponse: 'success',
token: 'JWT ' + token,
profile: user.profile,
role: user.role
});
}
else {
res.send({reponse: 'error', msg: 'wrong password'});
}
});
}
});
});
app.get('/account', passport.authenticate('jwt', { session: false }), (req, res) => {
var token = getToken(req.headers);
if (token) {
jwt.verify(token, config.secret, function(err, decoded){
if (err) {
return res.redirect("/");
}
else if (req.user.role != "Owner") {
return res.redirect("/");
}
else {
req.decoded = decoded;
res.sendFile('/.../account.html'); // /.../ : file path is good
}
});
}
});