mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-12 00:31:06 +03:30
83 lines
3.0 KiB
JavaScript
Vendored
83 lines
3.0 KiB
JavaScript
Vendored
import { UserService, AuthenticationError, ApiService, TokenService } from '@/services'
|
|
import router from '@/router'
|
|
import { urls } from '@/config/urls'
|
|
|
|
export default {
|
|
async login({ commit, dispatch }, {cell_number, password}) {
|
|
commit('loginRequest');
|
|
try {
|
|
const response = await UserService.login(cell_number, password);
|
|
commit('loginSuccess', response.data.access_token);
|
|
// Redirect the user to the page he first tried to visit or to the home view
|
|
router.push(router.history.current.query.redirect || '/');
|
|
|
|
dispatch('info', {}, {root : true});
|
|
|
|
return response;
|
|
} catch (e) {
|
|
if (e instanceof AuthenticationError) {
|
|
commit('loginError', {errorCode: e.errorCode, errorMessage: e.message})
|
|
}
|
|
|
|
return false
|
|
}
|
|
},
|
|
|
|
async forgotPassword({commit}, {form}) {
|
|
var result = await ApiService.post(urls.forgotPassword, form);
|
|
if(result && result.status == 200) {
|
|
commit('modal/changeCurrentModal', { modal: "modal-auth-verify-code" }, {root: true});
|
|
}
|
|
},
|
|
|
|
|
|
async verifyCodeSMS({commit, dispatch}, {form}) {
|
|
var response = await ApiService.post(urls.sendVerifyCode, form);
|
|
if(response && response.status == 200 && response.data.access_token) {
|
|
TokenService.saveToken(response.data.access_token);
|
|
TokenService.saveRefreshToken(response.data.refresh_token);
|
|
ApiService.setAuthHeader();
|
|
commit('loginSuccess', response.data.access_token);
|
|
commit('modal/changeCurrentModal', { modal: "modal-auth-change-password" }, {root: true});
|
|
dispatch('info', {}, {root : true});
|
|
}
|
|
},
|
|
|
|
async changePassword({commit}, {form}) {
|
|
var response = await ApiService.post(urls.changePassword, form);
|
|
if(response && response.status == 200 ) {
|
|
commit('modal/closeModal', {}, {root: true});
|
|
router.push({ name: `Dashboard` });
|
|
}
|
|
},
|
|
|
|
async logout({ commit }) {
|
|
await UserService.logout();
|
|
commit('logoutSuccess')
|
|
router.push('/login')
|
|
},
|
|
|
|
refreshToken({ commit, state }) {
|
|
// If this is the first time the refreshToken has been called, make a request
|
|
// otherwise return the same promise to the caller
|
|
if(!state.refreshTokenPromise) {
|
|
const p = UserService.refreshToken()
|
|
commit('refreshTokenPromise', p)
|
|
|
|
// Wait for the UserService.refreshToken() to resolve. On success set the token and clear promise
|
|
// Clear the promise on error as well.
|
|
p.then(
|
|
response => {
|
|
commit('refreshTokenPromise', null)
|
|
commit('loginSuccess', response)
|
|
},
|
|
error => {
|
|
commit('refreshTokenPromise', null)
|
|
}
|
|
)
|
|
}
|
|
|
|
return state.refreshTokenPromise
|
|
}
|
|
}
|