我在我的项目中使用了 Nuxt auth-module。登录 API 以这种结构返回数据:
data:{
data:{
user:{
bio: null
createdAt: "2021-06-29T12:28:42.442Z"
email: "name@info.co"
id: 1
image: null
token: "token"
updatedAt: "2021-06-29T12:28:42.447Z"
username: "name"
}
}
}
在 nuxtconfig 中,我像这样设置模块配置:
auth: {
strategies: {
local: {
endpoints: {
login: { url: 'users/login', method: 'post', propertyName: 'data.user.token' },
user: { url: 'me', method: 'get', propertyName: 'data' },
logout: false
}
}
}
},
但是令牌没有保存在应用程序中。有什么解决办法吗?
所以我找到了一个解决方案:
auth: {
strategies: {
local: {
token: {
property: 'user.token', // /user endpoint API returns user object
type: 'Token' // if your token type is not Bearer
},
user: {
user: 'user'
},
endpoints: {
login: { url: '/users/login', method: 'post' },
user: { url: '/user', method: 'get' },
logout: false
}
}
}
},
答案 0 :(得分:1)
结构是data.data.user
而不是data.user
,因此IMO你需要用这样的配置来指定它
auth: {
strategies: {
local: {
user: {
property: 'data.user', // or maybe 'data.data.user'
// autoFetch: true
},
}
}
}
如documentation中所述。