totp_form.js (1215B)
- import mfaApi from '../../services/new_api/mfa.js'
- import { mapState, mapGetters, mapActions, mapMutations } from 'vuex'
- import { library } from '@fortawesome/fontawesome-svg-core'
- import {
- faTimes
- } from '@fortawesome/free-solid-svg-icons'
- library.add(
- faTimes
- )
- export default {
- data: () => ({
- code: null,
- error: false
- }),
- computed: {
- ...mapGetters({
- authSettings: 'authFlow/settings'
- }),
- ...mapState({
- instance: 'instance',
- oauth: 'oauth'
- })
- },
- methods: {
- ...mapMutations('authFlow', ['requireRecovery', 'abortMFA']),
- ...mapActions({ login: 'authFlow/login' }),
- clearError () { this.error = false },
- submit () {
- const { clientId, clientSecret } = this.oauth
- const data = {
- clientId,
- clientSecret,
- instance: this.instance.server,
- mfaToken: this.authSettings.mfa_token,
- code: this.code
- }
- mfaApi.verifyOTPCode(data).then((result) => {
- if (result.error) {
- this.error = result.error
- this.code = null
- return
- }
- this.login(result).then(() => {
- this.$router.push({ name: 'friends' })
- })
- })
- }
- }
- }