NuxtJs登录有效但未经授权401

时间:2020-05-19 16:35:30

标签: javascript express nuxt.js

我正在使用NuxtJs auth module来处理我在该州的授权。对于auth,我编写了一个有效的express api。

我的nuxt.config.js中具有以下配置:

  axios: {
    baseURL: 'http://localhost:4000/api'
  },

  auth: {
    strategies: {
      local: {
        endpoints: {
          login: { url: '/users/login', method: 'post', propertyName: 'data.token' },
          user: { url: '/users/me', method: 'get', propertyName: 'data' },
        },
      }
    }
  },

在我的登录组件中,我这样称呼登录路由:

const { data } = await this.$auth.loginWith('local', {
  data: this.login
})

这成功调用了/api/users/login路由(200),然后调用了/api/users/me并提示了错误

xhr.js:178 GET http://localhost:4000/api/users/me 401 (Unauthorized)

在邮递员中,我正在调用api路由,该路由会返回这样的用户*

> Get - localhost:4000/api/users/me
> 
> Authorization:
> 
> Type: Bearer Token Token: xxxx

哪个返回用户数据。

我读到nuxt auth模块默认将类型设置为'Bearer',但在我的情况下它不起作用。

用户登录有效,但由于授权,返回用户数据的第二条路由无效。 Api不在nuxtjs内,而是Express中编写的另一个项目。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

axios: {
baseURL: 'http://localhost:4000/api' },
auth: {
strategies: {
  local: {
    endpoints: {
      login: { url: '/users/login', method: 'post', propertyName: 'data.token' },
      user: { url: '/users/me', method: 'get', propertyName: 'data' },
    },
    tokenType: ''
  }
}

},

将tokenType设置为空字符串将覆盖默认的“ Bearer”。某些服务器配置可能会抛出401。