now getting login providers from backend

This commit is contained in:
2019-04-02 10:45:45 +02:00
parent 1ee42cb01b
commit c0b53decc2
3 changed files with 30 additions and 6 deletions

View File

@@ -26,6 +26,6 @@ export function register (userData: any) {
return axios.post(`${API_URL}/auth/register`, userData) return axios.post(`${API_URL}/auth/register`, userData)
} }
export function getProviders (providers: any) { export function getProviders () {
return axios.get(`${API_URL}/auth/providers`, providers) return axios.get(`${API_URL}/auth/providers`)
} }

View File

@@ -8,6 +8,11 @@
<p class="subtitle error-msg">{{ errorMsg }}</p> <p class="subtitle error-msg">{{ errorMsg }}</p>
</div> </div>
</div> </div>
<ul>
<li v-for="(provider, index) in loginProviders" v-bind:id="index">
<a :href="provider.url">{{ index }} ({{provider.type}})</a>
</li>
</ul>
</section> </section>
<section class="section"> <section class="section">
<div class="container"> <div class="container">
@@ -44,6 +49,7 @@
email: '', email: '',
password: '', password: '',
errorMsg: '', errorMsg: '',
loginProviders: [],
}; };
}, },
methods: { methods: {
@@ -58,11 +64,15 @@
}, },
mounted () { mounted () {
EventBus.$on('failedRegistering', (msg) => { EventBus.$on('failedRegistering', (msg) => {
this.errorMsg = msg this.errorMsg = msg;
}); });
EventBus.$on('failedAuthentication', (msg) => { EventBus.$on('failedAuthentication', (msg) => {
this.errorMsg = msg this.errorMsg = msg;
}); });
EventBus.$on('loginProvidersLoaded', (providers) => {
this.loginProviders = providers;
});
this.$store.dispatch('loadLoginProviders');
}, },
beforeDestroy () { beforeDestroy () {
EventBus.$off('failedRegistering'); EventBus.$off('failedRegistering');

View File

@@ -3,7 +3,7 @@ import Vuex from 'vuex';
// imports of AJAX functions will go here // 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'; import { isValidJwt, EventBus } from '@/utils';
Vue.use(Vuex); Vue.use(Vuex);
@@ -11,6 +11,7 @@ Vue.use(Vuex);
const state = { const state = {
// single source of data // single source of data
surveys: [], surveys: [],
loginProviders: [],
currentSurvey: {}, currentSurvey: {},
user: {}, user: {},
jwt: '', jwt: '',
@@ -34,7 +35,13 @@ const actions = {
addSurveyResponse(context: any) { addSurveyResponse(context: any) {
return saveSurveyResponse(context.state.currentSurvey); 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) { login(context: any, userData: any) {
context.commit('setUserData', { userData }); context.commit('setUserData', { userData });
return authenticate(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) { setUserData(sState: any, payload: any) {
console.log('setUserData payload = ', payload); console.log('setUserData payload = ', payload);
sState.userData = payload.userData; sState.userData = payload.userData;
@@ -96,6 +107,9 @@ const getters = {
isAuthenticated(sState: any) { isAuthenticated(sState: any) {
return isValidJwt(sState.jwt.token); return isValidJwt(sState.jwt.token);
}, },
getLoginProviders(sState: any) {
return sState.loginProviders;
},
}; };
const store = new Vuex.Store({ const store = new Vuex.Store({