nuxt auth-module «Ответ данных пользователя не содержит поля XXX»
Я пытаюсь использовать модуль nuxt-auth, мои настройки для этого модуля
auth: {
cookie: false,
plugins: ['~/plugins/api.js'],
redirect: {
logout: '/login',
login: '/',
home: false
},
strategies: {
local: {
scheme: 'refresh',
token: {
property: 'token',
maxAge: 3600
},
refreshToken: {
property: 'refresh_token',
data: 'refresh_token',
maxAge: 60 * 60 * 24 * 30
},
user: {
property: 'userDetail'
},
endpoints: {
login: { url: 'http://localhost:8085/api/login_check', method: 'post', propertyName: 'token' },
refresh: { url: 'http://localhost:8085/api/token/refresh', method: 'post', propertyName: 'refresh_token' },
logout: false,
user: { url: 'http://localhost:8085/api/user/fetchactive', method: 'get' }
},
tokenRequired: true
}
}
}
Мой "fetchactive" API возвращает JSON, содержащий свойство "userDetail", которое представляет собой строку, содержащую адрес электронной почты (я также пытался сделать userDetail объектом, но безуспешно).
например
{"userDetail":{"email":"my@email.test"}}
Nuxt auth постоянно говорит мне, что «Ответ данных пользователя не содержит поля userDetail».
Я также попытался установить "свойство" в значение false, но Nuxt auth в этом случае ищет поле с именем "false" ... Я просто не могу заставить его работать.
Кто-нибудь может помочь?
2 ответа
использование этой конфигурации в файле nuxt.config.js сработало для меня
Это произошло из-за того, что конечная точка auth.user по умолчанию ищет объект 'data' в ответе, но меня там нет, так как у вас есть собственный ключ объекта ответа, не содержащийся в 'data: {...}
попробуйте добавить propertyName, как в примере в auth.user
endpoints: {
user: { url: 'http://localhost:8085/api/user/fetchactive', method: 'get', propertyName: '' }
}
}