Ich versuche, einen Benutzer mit vuejs und laravels Pass zu authentifizieren.
Ich kann nicht herausfinden, wie mehrere Parameter über eine Aktion an die Vuex-Mutation gesendet werden können.
- Geschäft -
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)
}
})
- Anmeldemethode -
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()
})
})
}
Ich wäre für jede Art von Hilfe sehr dankbar!
action
In einfachen Worten müssen Sie Ihre Nutzdaten in ein Schlüsselarray einbauen
Senden Sie dann die Nutzdaten direkt an die Aktion
Keine Änderung in Ihrer Aktion
Rufen Sie in Ihrer Mutation die Werte mit dem Schlüssel auf
quelle
Ich denke, dies kann so einfach sein, als würde man annehmen, dass Sie mehrere Parameter an Ihre Aktion übergeben werden, während Sie dort nachlesen. Aktionen akzeptieren nur zwei Parameter
context
undpayload
welche Daten Sie in Aktion übergeben möchten. Nehmen wir also ein BeispielAktion einrichten
anstatt
machen
Aktion aufrufen (versenden)
anstatt
machen
Ich hoffe, das wird helfen
quelle