token.ts 796 B

1234567891011121314151617181920212223242526272829303132
  1. import { saveToken, destoryToken } from '@/utils/token';
  2. import { ActionTree, Module, MutationTree } from 'vuex';
  3. import { RootState, TokenPayload, TokenState } from '../typings';
  4. const DEFAULT: TokenState = {
  5. token: localStorage.getItem('token') || '',
  6. };
  7. const actions: ActionTree<TokenState, RootState> = {
  8. updateToken({ commit }, payload: TokenPayload) {
  9. commit('updateToken', payload);
  10. saveToken(payload.token);
  11. },
  12. destoryToken({ commit }) {
  13. commit('updateToken', {
  14. token: '',
  15. } as TokenPayload);
  16. destoryToken();
  17. },
  18. };
  19. const mutations: MutationTree<TokenState> = {
  20. updateToken(state, { token }: TokenPayload) {
  21. state.token = token;
  22. },
  23. };
  24. export const token: Module<TokenState, RootState> = {
  25. state: () => DEFAULT,
  26. mutations,
  27. actions,
  28. };