Próbuję uwierzytelnić użytkownika za pomocą paszportu vuejs i laravel.
Nie jestem w stanie dowiedzieć się, jak wysłać wiele parametrów do mutacji vuex za pomocą akcji.
- sklep -
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)
}
})
- metoda logowania -
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()
})
})
}
Byłbym bardzo wdzięczny za jakąkolwiek pomoc!
action
Mówiąc prościej, musisz zbudować swój ładunek w tablicy kluczy
Następnie wyślij ładunek bezpośrednio do akcji
Żadnych zmian w Twoim działaniu
W swojej mutacji wywołaj wartości kluczem
źródło
myślę, że to może być tak proste, załóżmy, że zamierzasz przekazać wiele parametrów do swojej akcji, gdy tam czytasz, akcje akceptują tylko dwa parametry
context
ipayload
które są danymi, które chcesz przekazać w działaniu, więc weźmy przykładKonfigurowanie akcji
zamiast
robić
Wywołanie (wysyłanie) Akcja
zamiast
robić
mam nadzieję, że to pomoże
źródło