J'essaie d'authentifier un utilisateur en utilisant vuejs et le passeport de laravel.
Je ne suis pas en mesure de comprendre comment envoyer plusieurs paramètres à la mutation vuex via une action.
- boutique -
export default new Vuex.Store({
state: {
isAuth: !!localStorage.getItem('token')
},
getters: {
isLoggedIn(state) {
return state.isAuth
}
},
mutations: {
authenticate(token, expiration) {
localStorage.setItem('token', token)
localStorage.setItem('expiration', expiration)
}
},
actions: {
authenticate: ({ commit }, token, expiration) => commit('authenticate', token, expiration)
}
})
- méthode de connexion -
login() {
var data = {
client_id: 2,
client_secret: '**************************',
grant_type: 'password',
username: this.email,
password: this.password
}
// send data
this.$http.post('oauth/token', data)
.then(response => {
// send the parameters to the action
this.$store.dispatch({
type: 'authenticate',
token: response.body.access_token,
expiration: response.body.expires_in + Date.now()
})
})
}
Je serais très reconnaissant pour toute sorte d'aide!
action
En termes simples, vous devez créer votre charge utile dans un tableau de clés
Envoyez ensuite la charge utile directement à l'action
Aucun changement dans votre action
Dans ta mutation appelle les valeurs avec la clé
la source
Je pense que cela peut être aussi simple que de supposer que vous allez passer plusieurs paramètres à votre action lorsque vous lisez là-haut, les actions n'acceptent que deux paramètres
context
etpayload
quelles sont vos données que vous voulez passer en action, alors prenons un exempleConfiguration de l'action
au lieu de
faire
Action d'appel (répartition)
au lieu de
faire
j'espère que ça va aider
la source