Advertisement
linuxyamigos

Untitled

Mar 23rd, 2020
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. export const state = () => ({
  2.     status: null,
  3.     authUser: {
  4.         id: null,
  5.         name: null,
  6.         username: null,
  7.         roles: [],
  8.         accessToken: null,
  9.         refreshToken: null,
  10.         exp: null,
  11.         expires_in: null
  12.     },
  13.     alert: null
  14. });
  15.  
  16. export const mutations = {
  17.  
  18.     auth_request(state){
  19.         state.status = 'loading'
  20.     },
  21.  
  22.     auth_success(state, payload){
  23.         state.status = 'success'
  24.         state.authUser.accessToken  =  payload.access_token;
  25.         state.authUser.refreshToken =  payload.refresh_token;
  26.         state.authUser.expires_in = payload.expires_in;
  27.         state.authUser.exp = parseInt((new Date).getTime() / 1000) + payload.expires_in
  28.         state.authUser.id =  payload.uid;
  29.         state.authUser.roles =  payload.roles;
  30.     },
  31.  
  32.     auth_error(state){
  33.         state.status = 'error'
  34.     },
  35.  
  36.     logout(state){
  37.         state.status = ''
  38.         state.authUser.accessToken  = null,
  39.         state.authUser.refreshToken = null
  40.     },
  41.    
  42.     logout(state) {
  43.         state.authUser = {
  44.             id: null,
  45.             name: null,
  46.             username: null,
  47.             roles: [],
  48.             accessToken: null,
  49.             refreshToken: null,
  50.             exp: null,
  51.             expires_in: null
  52.         };
  53.         state.alert = null;
  54.  
  55.         this.$router.replace({ path: '/' });
  56.     },    
  57.    
  58.     set_alert(state, msg){
  59.         state.alert = msg;
  60.     }
  61. }
  62.  
  63.  
  64. export const actions = {
  65.     login(state, { username, password } ) {      
  66.         return new Promise((resolve, reject) => {
  67.             this.commit('auth_request');  // [vuex] unknown mutation type: auth_request
  68.  
  69.             let payload = {};
  70.        
  71.             this.$axios.post('http://elgrove.co/auth/login', {
  72.                 username: username,
  73.                 password: password
  74.  
  75.             }).then( response => {
  76.                 //console.log(response);
  77.                 payload.accessToken  =  response.data.data.access_token;
  78.                 payload.refreshToken =  response.data.data.refresh_token;
  79.                 payload.expires_in = response.data.data.expires_in;
  80.                 payload.exp = parseInt((new Date).getTime() / 1000) + response.data.data.expires_in
  81.                 payload.id =  response.data.data.uid;
  82.                 payload.roles =  response.data.data.roles;
  83.  
  84.                 this.$axios.request({
  85.                     url: 'http://elgrove.co/api/v1/me',
  86.                     method: 'get',
  87.                     headers: {
  88.                         'Authorization': `Bearer ${response.data.data.access_token}`
  89.                     }
  90.                 }).then( response => {
  91.                     payload.name =  response.data.data.name;
  92.                     payload.username = response.data.data.username;
  93.  
  94.                     this.commit('auth_success', payload);
  95.                     resolve(response);
  96.  
  97.                 }).catch((error) => {
  98.                     const response = error.response;
  99.                     //console.log('Error', error);
  100.                     //console.log(response.data.error);
  101.                     this.error = response.data.error;
  102.  
  103.                     this.commit('auth_error');
  104.                     reject(this.error);
  105.                 });
  106.  
  107.             }).catch((error) => {
  108.                 const response = error.response;
  109.                 console.log('Error', error);
  110.                 //console.log(response.data.error);
  111.                 //this.error = response.data.error;
  112.             });
  113.  
  114.         });    
  115.     },
  116.  
  117.  
  118.     logout({commit}){
  119.         commit('logout');
  120.     }
  121. }
  122.  
  123. export const getters = {
  124.     get_user(state) {
  125.         return state.authUser;
  126.     },
  127.     is_logged(state) {
  128.         return state.authUser.id !== null;
  129.     }
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement