|
|
@ -86,10 +86,12 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
mounted () { |
|
|
|
this.refreshStrategies() |
|
|
|
this.$refs.iptEmail.focus() |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
/** |
|
|
|
* SELECT STRATEGY |
|
|
|
*/ |
|
|
|
selectStrategy (key, useForm) { |
|
|
|
this.selectedStrategy = key |
|
|
|
this.screen = 'login' |
|
|
@ -100,28 +102,10 @@ export default { |
|
|
|
this.$refs.iptEmail.focus() |
|
|
|
} |
|
|
|
}, |
|
|
|
refreshStrategies () { |
|
|
|
this.isLoading = true |
|
|
|
this.$apollo.query({ |
|
|
|
query: strategiesQuery |
|
|
|
}).then(resp => { |
|
|
|
if (_.has(resp, 'data.authentication.providers')) { |
|
|
|
this.strategies = _.get(resp, 'data.authentication.providers', []) |
|
|
|
} else { |
|
|
|
throw new Error('No authentication providers available!') |
|
|
|
} |
|
|
|
this.isLoading = false |
|
|
|
}).catch(err => { |
|
|
|
console.error(err) |
|
|
|
this.$store.commit('showNotification', { |
|
|
|
style: 'red', |
|
|
|
message: err.message, |
|
|
|
icon: 'warning' |
|
|
|
}) |
|
|
|
this.isLoading = false |
|
|
|
}) |
|
|
|
}, |
|
|
|
login () { |
|
|
|
/** |
|
|
|
* LOGIN |
|
|
|
*/ |
|
|
|
async login () { |
|
|
|
if (this.username.length < 2) { |
|
|
|
this.$store.commit('showNotification', { |
|
|
|
style: 'red', |
|
|
@ -138,14 +122,15 @@ export default { |
|
|
|
this.$refs.iptPassword.focus() |
|
|
|
} else { |
|
|
|
this.isLoading = true |
|
|
|
this.$apollo.mutate({ |
|
|
|
mutation: loginMutation, |
|
|
|
variables: { |
|
|
|
username: this.username, |
|
|
|
password: this.password, |
|
|
|
provider: this.selectedStrategy |
|
|
|
} |
|
|
|
}).then(resp => { |
|
|
|
try { |
|
|
|
let resp = await this.$apollo.mutate({ |
|
|
|
mutation: loginMutation, |
|
|
|
variables: { |
|
|
|
username: this.username, |
|
|
|
password: this.password, |
|
|
|
strategy: this.selectedStrategy |
|
|
|
} |
|
|
|
}) |
|
|
|
if (_.has(resp, 'data.authentication.login')) { |
|
|
|
let respObj = _.get(resp, 'data.authentication.login', {}) |
|
|
|
if (respObj.responseResult.succeeded === true) { |
|
|
@ -173,7 +158,7 @@ export default { |
|
|
|
} else { |
|
|
|
throw new Error('Authentication is unavailable.') |
|
|
|
} |
|
|
|
}).catch(err => { |
|
|
|
} catch (err) { |
|
|
|
console.error(err) |
|
|
|
this.$store.commit('showNotification', { |
|
|
|
style: 'red', |
|
|
@ -181,9 +166,12 @@ export default { |
|
|
|
icon: 'warning' |
|
|
|
}) |
|
|
|
this.isLoading = false |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
/** |
|
|
|
* VERIFY TFA CODE |
|
|
|
*/ |
|
|
|
verifySecurityCode () { |
|
|
|
if (this.securityCode.length !== 6) { |
|
|
|
this.$store.commit('showNotification', { |
|
|
@ -230,6 +218,16 @@ export default { |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
apollo: { |
|
|
|
strategies: { |
|
|
|
query: strategiesQuery, |
|
|
|
update: (data) => data.authentication.strategies, |
|
|
|
watchLoading (isLoading) { |
|
|
|
this.isLoading = isLoading |
|
|
|
this.$store.commit(`loading${isLoading ? 'Start' : 'Stop'}`, 'login-strategies-refresh') |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|