我正在创建一个功能全面的网站,当用户转到登录页面(使用GET请求),填写表格并提交(使用POST请求)时,必须将其重定向到个人资料。所有这些都是使用JWT完成的。
以下是我的路线-
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
var jwt = require('jsonwebtoken');
router.use(bodyParser.json());
router.use(bodyParser.urlencoded({extended: false}));
//models
var User = require('../models/signupModel');
router.get('/login', function(req, res){ //for heading over to Login page
res.render('login');
})
router.post('/login', function(req, res){
User.findOne({username: req.body.username, password: req.body.password}).then(function(result){
if(result){
var payload = {
id: result._id,
username: result.username,
}
let token = jwt.sign(payload, 'my_secret', {expiresIn: '1h'});
/*
I WANT TO REDIRECT FROM HERE TO PROFILE
*/
}
else{
res.redirect('/login');
}
})
})
router.use((req, res, next) => {
var token = req.headers['x-access-token'] || req.body.token
if (token) {
jwt.verify(token, 'my_secret', function (err, decoded) {
if (!err) {
req.decoded = decoded;
next();
} else {
res.status(403).send('Invalid token supplied');
}
})
} else {
res.status(403).send('Authorization failed! Please provide a valid token');
}
})
router.get('/profile', function(req, res){
//RENDERING PROFILE PAGE HERE USER EXISTS
})
module.exports = router;
我总是收到“授权失败!请提供有效的令牌”。令牌似乎没有存储在任何地方,或者没有与Header一起传递。 “请帮助我进行此工作。”
预先感谢