我正在使用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中编写的另一个项目。
答案 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。