diff --git a/src/api/index.ts b/src/api/index.ts
index f8becc2..eca273f 100644
--- a/src/api/index.ts
+++ b/src/api/index.ts
@@ -26,6 +26,6 @@ export function register (userData: any) {
return axios.post(`${API_URL}/auth/register`, userData)
}
-export function getProviders (providers: any) {
- return axios.get(`${API_URL}/auth/providers`, providers)
+export function getProviders () {
+ return axios.get(`${API_URL}/auth/providers`)
}
\ No newline at end of file
diff --git a/src/components/Login.vue b/src/components/Login.vue
index 528d80e..9fdfe83 100644
--- a/src/components/Login.vue
+++ b/src/components/Login.vue
@@ -8,6 +8,11 @@
@@ -44,6 +49,7 @@
email: '',
password: '',
errorMsg: '',
+ loginProviders: [],
};
},
methods: {
@@ -58,11 +64,15 @@
},
mounted () {
EventBus.$on('failedRegistering', (msg) => {
- this.errorMsg = msg
+ this.errorMsg = msg;
});
EventBus.$on('failedAuthentication', (msg) => {
- this.errorMsg = msg
+ this.errorMsg = msg;
});
+ EventBus.$on('loginProvidersLoaded', (providers) => {
+ this.loginProviders = providers;
+ });
+ this.$store.dispatch('loadLoginProviders');
},
beforeDestroy () {
EventBus.$off('failedRegistering');
diff --git a/src/store.ts b/src/store.ts
index f7663ba..db08a1b 100644
--- a/src/store.ts
+++ b/src/store.ts
@@ -3,7 +3,7 @@ import Vuex from 'vuex';
// imports of AJAX functions will go here
-import { fetchSurveys, fetchSurvey, saveSurveyResponse, postNewSurvey, authenticate, register } from '@/api';
+import { fetchSurveys, fetchSurvey, getProviders, saveSurveyResponse, postNewSurvey, authenticate, register } from '@/api';
import { isValidJwt, EventBus } from '@/utils';
Vue.use(Vuex);
@@ -11,6 +11,7 @@ Vue.use(Vuex);
const state = {
// single source of data
surveys: [],
+ loginProviders: [],
currentSurvey: {},
user: {},
jwt: '',
@@ -34,7 +35,13 @@ const actions = {
addSurveyResponse(context: any) {
return saveSurveyResponse(context.state.currentSurvey);
},
-
+ loadLoginProviders(context: any) {
+ return getProviders()
+ .then((response) => {
+ context.commit('setLoginProviderData', {providers: response.data});
+ EventBus.$emit('loginProvidersLoaded', response.data);
+ })
+ },
login(context: any, userData: any) {
context.commit('setUserData', { userData });
return authenticate(userData)
@@ -80,6 +87,10 @@ const mutations = {
}
}
},
+ setLoginProviderData(sState: any, payload: any){
+ console.log("got loginProviders = ", payload);
+ sState.loginProviders = payload.providers;
+ },
setUserData(sState: any, payload: any) {
console.log('setUserData payload = ', payload);
sState.userData = payload.userData;
@@ -96,6 +107,9 @@ const getters = {
isAuthenticated(sState: any) {
return isValidJwt(sState.jwt.token);
},
+ getLoginProviders(sState: any) {
+ return sState.loginProviders;
+ },
};
const store = new Vuex.Store({