UnauthorizedError:nwtt js的身份验证模块中的jwt格式错误

时间:2019-08-24 06:17:47

标签: nuxt.js

我是nuxt js的新手,我想在我的nuxt js应用程序中使用auth-module。因此,请告诉我为什么我在根页面“ /”中出现此“ jwt格式错误”错误。

使用此代码制作请求表单register.vue文件后,我获得了访问令牌

methods: {
register() {
  try {
    this.$auth.loginWith('local', {
      data: {
        username: this.name,
        password: this.password
      }
    })
  } catch (error) {
    console.log(error)
  }
}

}

我遵循所有安装nuxt js和auth-module的标准方法。

这是nuxt.config.js文件的代码

serverMiddleware: ['~/api/auth'],
  auth: {
    strategies: {
      local: {
        endpoints: {
          login: {
            url: '/api/auth/login',
            method: 'post',
            propertyName: 'token.accessToken'
          },
          logout: {
            url: '/api/auth/logout',
            method: 'post'
          },
          user: {
            url: '/api/auth/user',
            method: 'get',
            propertyName: 'user'
          }
        }
        // tokenRequired: true,
        // tokenType: 'bearer'
      }
    }
  },
  eslint: {
    fix: true
  },
  /*
   ** Axios module configuration
   ** See https://axios.nuxtjs.org/options
   */
  axios: {
    proxy: true
  },
  proxy: {
    '/api': 'http://localhost:3000'
  },

这是api / auth.js文件中的代码

const express = require('express')
const bodyParser = require('body-parser')
const cookieParser = require('cookie-parser')
const jwt = require('express-jwt')
const jsonwebtoken = require('jsonwebtoken')

// Create app
const app = express()

// Install middleware
app.use(cookieParser())
app.use(bodyParser.json())

// JWT middleware
app.use(
  jwt({
    secret: 'dummy'
  }).unless({
    path: '/api/auth/login'
  })
)

// -- Routes --

// [POST] /login
app.post('/login', (req, res, next) => {
  const { username, password } = req.body
  const valid = username.length && password === '123'

  if (!valid) {
    throw new Error('Invalid username or password')
  }

  const accessToken = jsonwebtoken.sign(
    {
      username,
      picture: 'https://github.com/nuxt.png',
      name: 'User ' + username,
      scope: ['test', 'user']
    },
    'dummy'
  )

  res.json({
    token: {
      accessToken
    }
  })
})

// [GET] /user
app.get('/user', (req, res, next) => {
  res.json({
    user: req.user
  })
})

// [POST] /logout
app.post('/logout', (req, res, next) => {
  res.json({
    status: 'OK'
  })
})

// Error handler
app.use((err, req, res, next) => {
  console.error(err) // eslint-disable-line no-console
  res.status(401).send(err + '')
})

// -- export app --
module.exports = {
  path: '/api/auth',
  handler: app
}

我只想解决此“ UnauthorizedError:jwt格式错误”错误。

0 个答案:

没有答案