Estoy tratando de integrar una solución de inicio de sesión en mi vue.app utilizando el complemento de autenticación JWT.
Tengo una solución de prueba funcionando, pero en mi rama principal, la versión de eslint debe ser más nueva ya que estoy recibiendo "Las funciones del ejecutor de promesas no deben ser asíncronas no-asíncronas-promesas-ejecutadoras".
Mi código dentro de mi 'tienda' adn debajo de mis acciones es:
login({ commit }, credentials){ return new Promise(async (resolve, reject) => { try { const { data } = await axios.post(`https://mywebsite.com/wp-json/jwt-auth/v1/token`, credentials) commit('SET_USER', data) resolve(data) }catch(e){ reject(e) } }) }, validate({ state }) { return axios({ url: `https://mywebsite.com/wp-json/jwt-auth/v1/token/validate`, method: 'post', headers: { 'Authorization': `Bearer ${state.user.token}` } }) },No estoy seguro de cómo volver a escribir esto para eliminar el error.
Parece que tienes un malentendido de async/await. Si desea async/await, no necesita envolverlo en un objeto Promise. En cambio. use la palabra clave asíncrona en el método y aplique esperar dentro.
var vm = new Vue({ methods: { async login({ commit }, credentials) { try { const { data } = await axios.post( `https://mywebsite.com/wp-json/jwt-auth/v1/token`, credentials ); commit("SET_USER", data); } catch (err) { // eslint-disable-next-line console.log(err); } }, validate({ state }) { return axios({ url: `https://mywebsite.com/wp-json/jwt-auth/v1/token/validate`, method: "post", headers: { Authorization: `Bearer ${state.user.token}`, }, }); }, }, });