我正在使用html / css + javascript / jQuery对网站进行编码。
目前,我正在进行注册+登录/注销服务,但我被卡住了。
这是我用于登录的jQuery代码(前端):
// 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');
}
});
});
});
这是我的node.js + express +护照代码(后端):
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
}
});
}
});
问题在于,当我使用邮递员时,一切都很好。 但是,当我点击我网站上的登录按钮时,没有任何反应,并且没有错误
有人可以帮助我吗?