401: не авторизован (содержит токен на предъявителя) - PullRequest
0 голосов
/ 11 ноября 2019
  • Модуль входа работает и создает пользователей с созданным токеном 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.' })
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...