- Модуль входа работает и создает пользователей с созданным токеном 201
- Маршрут квитанций раньше работал с тем же кодом, но теперь ответ 401
- с использованием Почтальона (Authorization & Bearer:xcvbnm) был поставлен
Вот мой код
server.js
const express = require ('express') require ('./ db / mongoose') const userRouter = требуется (' ./ маршруты / пользователь ') const receiveRouter = требуется (' ./ маршруты / получение ')
const app = express () const port = process.env.PORT ||4003 app.use (express.json ()) app.use (userRouter) app.use (receiveRouter) app.listen (port, () => {console.log ('Сервер подключен к порту' + порт)})
const Receipt = require ('./ models / receive') const User = require ('./ models / user')
Маршрут квитанций
router.post('/receipts', auth, async (req, res) => {
const receipt = new Receipt({
...req.body,
owner: req.user._id
})
try {
await receipt.save()
res.status(201).send(receipt)
} catch (e) {
res.status(400).send(e)
}
})
Схема получения const Receipt = mongoose.model ('Receipt', {description: {type: String, обязательно: true, trim: true},})
Auth module
const auth = async (req, res, next) => {
try {
const token = req.header('Authorization').replace('Bearer', '')
const decoded = jwt.verify(token, 'Mango@123')
const user = await User.findOne({ _id: decoded._id, 'tokens.token': token })
if (!user) {
throw new Error()
}
req.token = token
req.user = user
next()
} catch (e) {
res.status(401).send({ error: 'Please authenticate.' })
}
}