I was trying to follow the docs to activate MFA: https://appwrite.io/docs/products/auth/mfa
But when I called the account.updateMFA(true) I got the following exception:
AppwriteException: Invalid document structure: Attribute "factors" must be an array
idk if there's a missing step in the docs or I'm doing it incorrectly
This is the code I'm using (it's vue 3, but this is just JS):
Here's the Vue code I'm using:
// STEP 1
const recoveryCodes = ref<Models.MfaRecoveryCodes | undefined>()
async function startMfaRecoveryCodes() {
try {
step.value = MFA_STEPS.RECOVERY_CODES
showMfaModal.value = true
const res = await appwriteStore.account.createMfaRecoveryCodes()
recoveryCodes.value = res
console.log('Step 1', res)
} catch (error) {
console.error(error)
if (error instanceof AppwriteException) {
alert(error.message)
return
}
alert('Error loading thing')
}
}
//STEP 2
const mfaUri = ref<string | undefined>()
const otp = ref('')
async function makeMfaAuth() {
try {
const res = await appwriteStore.account.createMfaAuthenticator(AuthenticatorType.Totp)
mfaUri.value = res.uri
console.log('Step 2', res)
step.value = MFA_STEPS.VERIFY_MFA_FACTOR
} catch (error) {
console.error(error)
if (error instanceof AppwriteException) {
alert(error.message)
return
}
alert('Error loading MFA')
}
}
// STEP 3
async function enableOtp() {
try {
const resMfaAuth = await appwriteStore.account.updateMfaAuthenticator(
AuthenticatorType.Totp,
otp.value,
)
console.log('Step 3: MFA', resMfaAuth)
const mfaFactors = await appwriteStore.account.listMfaFactors()
console.log(mfaFactors)
// THIS GENERATES ERROR
const resUpdate = await appwriteStore.account.updateMFA(true)
console.log('Step 3: Update', resUpdate)
alert('MFA activated')
authStore.reloadUserAccount()
showMfaModal.value = false
} catch (error) {
console.error(error)
if (error instanceof AppwriteException) {
alert(error.message)
return
}
alert('Error Validating OTP')
}
}
Recommended threads
- Github App "Failed to retrieve access to...
When trying to connect the Github App on 1.8.1 I recieve this error: ```[Error] Method: GET [Error] URL: /v1/vcs/github/callback [Error] Type: Exception [Error]...
- Endless certificate generation cycle
Hello, when I try to add the subdomain stats.hedgehog-rp.ru, I get an infinite loop while the certificate is being generated. There are no problems with adding ...
- Update from 1.8 to 1.8.1 failing
I have spent the past 2 hours trying to figure this out but I really dont know what to do. 1.8. was a fresh install because the upgrade from 1.7.4 was a total m...