123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- import Vue from 'vue';
- import Vuex from 'vuex';
- import axios from 'axios';
- import log from '../../../assets/Log';
-
- Vue.use(Vuex);
- export default {
- namespaced: true,
- state: {
- username: 'UniVate2018',
- password: 'UniVate2018',
- isLoggedIn: log.isLoggedIn(),
- flag: false,
- status: undefined,
- token: undefined,
- user: undefined,
- person: undefined,
- agency: undefined,
- },
- mutations: {
- auth_request(state) {
- state.status = 'loading';
- },
- auth_success(state, user) {
- state.status = 'success';
- state.token = user.token;
- state.user = user.user;
- state.person = user.person;
- state.agency = user.agency;
- },
- auth_error(state) {
- state.status = 'error';
- },
- logout(state) {
- state.status = undefined;
- state.token = undefined;
- state.person = undefined;
- state.agency = undefined;
- state.user = undefined;
- },
- runInit(state, item) {
- state.flag = true;
- state.user = item.user;
- state.token = item.token;
- state.person = item.person;
- state.agency = item.agency;
- },
- updateFlag(state) {
- state.flag = true;
- },
- },
- getters: {
- authStatus: state => state.status,
- },
- actions: {
- init({
- commit,
- }) {
- console.log('init');
- if (!log.isLoggedIn() && log.tokenExpired) {
- log.clearValues();
- } else log.updateTokenExpiry();
- commit('runInit', {
- user: log.getJSONObject('user'),
- token: log.getJSONObject('token'),
- person: log.getJSONObject('person'),
- agency: log.getJSONObject('agency'),
- });
- },
- login({
- commit,
- state,
- }) {
- return new Promise((reject) => {
- console.log(state.username);
- commit('auth_request');
- const user = {
- username: state.username,
- password: state.password,
- };
- axios({
- url: '/api/register/authenticate',
- data: user,
- method: 'POST',
- })
- .then((resp) => {
- console.log(resp);
- log.clearValues();
- log.setValues(resp.data);
- commit('auth_success', resp.data);
- })
- .catch((err) => {
- console.log(err);
- commit('auth_error');
- log.clearValues();
- reject(err);
- });
- });
- },
- logout({
- commit,
- }) {
- return new Promise(() => {
- commit('logout');
- log.clearValues();
- delete axios.defaults.headers.common.Authorization;
- });
- },
- },
- };
|