Авторизация NuxtAuth и passportJS

При отправке данных c фронтенда NuxtAuth на бекенд Express, MySQL, JWT, passport и passport-jwt получаю 404 ошибку?

Ошибку получаю при попытке войти и получить токен, регистрация же пользователя проходит корректно без каких-либо ошибок.

passport.js:

const JwtStrategy = require('passport-jwt').Strategy
const ExtractJwt = require('passport-jwt').ExtractJwt
const db = require('../config/database')
const billConfig = require('../bill-config')

const options = {
    jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
    secretOrKey: billConfig.JWT
}

module.exports = passport => {
    passport.use(
        new JwtStrategy(options, (payload, done) => {
            try {
                db.query("SELECT `client_id`, `client_email` FROM `users` WHERE `client_id` = '" + payload.clientId + "'", (error, rows, fields) => {
                    if(error) {
                        console.log(error)
                    } else {
                        const user = rows
                        if(user) {
                            done(null, user)
                        } else {
                            done(null, false)
                        }
                    }
                })
            } catch(e) {
                console.log(e)
            }
        })
    )
}

Routes:

module.exports = (app) => {
    const passport = require('passport')
    const UserController = require('../Controller/UsersController')

    app
        .route('/api/users')
        .get(passport.authenticate('jwt', { session: false }), UserController.getAllUsers)
    app
        .route('/api/auth/signup')
        .post(UserController.signup)
    app
        .route('/api/auth/signin')
        .post(UserController.signin)
}

UserContoller.js:

exports.signin = (req, res) => {
    db.query("SELECT `client_id`, `client_email`, `client_password` FROM `users` WHERE `client_email` = '" + req.body.client_email + "'", (error, rows, fields) => {
        if(error) {
            response.status(400, error, res)
        } else if(rows.length <= 0) {
            response.status(404, `Пользователь с таким email не найден`, res)
        } else {
            const row = JSON.parse(JSON.stringify(rows))
            row.map(rw => {
                const client_password = bcrypt.compareSync(req.body.client_password, rw.client_password)
                if(client_password) {
                    const token = jwt.sign({
                        clientId: rw.client_id,
                        clientEmail: rw.client_email
                    }, billConfig.JWT, { expiresIn: 120 * 120 })
                    response.status(200, {token: `Bearer ${token}`}, res)
                    console.log(`Bearer ${token}`)
                } else {
                    response.status(401, {message: `Пароль не верный`}, res)
                }
                return true
            })
        }
    })
}

Страница входа из Nuxt`а:

export default {
  layout: 'other',
  data () {
    return {
      email: "",
      password: "",
      error: null
    }
  },
  methods: {
    async signin () {
      try {
        let response = await this.$auth.loginWith('local', {
          client_email: this.email,
          client_password: this.password
        })
        console.log(response)
      } catch (e) {
        //this.error = e.response.data.values.message
        this.error = e
      }
    }
  }
}

nuxt.config.js:

axios: {
    baseURL: 'http://localhost:3500/api'
  },
  router: {
    middleware: ['auth']
  },
  auth: {
    strategies: {
      local: {
        endpoints: {
          login: { url: '/auth/signin', method: 'post', propertyName: 'token' },
          logout: false
        },
        tokenRequired: true,
        tokenType: 'Bearer'
      }
    },
    redirect: {
      login: '/sign/in',
    }
  },

UPD: Через постман все работает корректно, а при отправке данных через Nuxt получаю 404, такое происходит именно при авторизации, при регистрации же все хорошо.


Ответы (0 шт):