Javascript JWT身份验证令牌错误-Can';无法创建聊天室,JWT格式不正确
我正在为我的聊天应用程序建立登录系统,在尝试创建新聊天室时被JWT格式错误的程序卡住了。当我登录时,我得到了令牌,我试图从邮递员那里发送创建聊天室的请求,我把令牌作为持有者,在正文中我把名字设置为我的聊天室,这是可以放置的。代码: auth.js:Javascript JWT身份验证令牌错误-Can';无法创建聊天室,JWT格式不正确,javascript,node.js,authentication,jwt,Javascript,Node.js,Authentication,Jwt,我正在为我的聊天应用程序建立登录系统,在尝试创建新聊天室时被JWT格式错误的程序卡住了。当我登录时,我得到了令牌,我试图从邮递员那里发送创建聊天室的请求,我把令牌作为持有者,在正文中我把名字设置为我的聊天室,这是可以放置的。代码: auth.js: const jwt = require('jwt-then') module.exports = async (req, res, next) => { try { if (!req.headers.authorizat
const jwt = require('jwt-then')
module.exports = async (req, res, next) => {
try {
if (!req.headers.authorization) throw 'Forbidden!'
const token = req.headers.authorization.split('')[1]
const payload = await jwt.verify(token, process.env.SECRET)
req.payload = payload
next()
} catch (err){
res.status(401).json({
message: err.message
})
}
}
routes/chatroom.js:
const { catchErrors } = require('../handlers/errorHandlers.js')
const chatroomController = require('../controllers/userControllers.js')
const auth = require('../middlewares/auth')
router.post('/', auth, catchErrors(chatroomController.createChatroom))
module.exports = router
聊天室控制器:
const Chatroom = mongoose.model('Chatroom')
exports.createChatroom = async (req, res) => {
const {name} = req.body
const nameRegex = /^[A-Za-z\s]+$/
if (!nameRegex.test(name)) throw 'Chatroom name can only contain alphabets.'
const chatroomExists = await Chatroom.findOne({name})
if (chatroomExists) throw 'Chatroom already exists.'
const chatroom = new Chatroom({
name,
})
await chatroom.save()
res.json({
message: 'Chatroom created!',
})
}
请帮我看看这个:那我需要做什么?你看了我发给你的链接中的第一个答案了吗?我认为它有一些有用的信息。它很有用,但我不知道应该将jwt.sign()放在哪里?您可以将
jwt.sign()放在创建令牌的任何位置。