diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev index ce827da36..d0187cf93 100644 --- a/docker/Dockerfile.dev +++ b/docker/Dockerfile.dev @@ -7,7 +7,7 @@ ENV PATH="$VIRTUAL_ENV/bin:$PATH" FROM base as build RUN apk add --update openssl librrd python3-dev libffi-dev gcc g++ musl-dev libxml2-dev libxslt-dev \ - libressl-dev jpeg-dev rrdtool-dev file make gettext freetype-dev cairo-dev \ + libressl-dev jpeg-dev rrdtool-dev file make gettext freetype-dev cairo-dev cargo \ && rm -rf /var/cache/apk/* RUN python3 -m venv $VIRTUAL_ENV WORKDIR /tmp diff --git a/frontend/src/components/user/TwoFactorAuthForm.vue b/frontend/src/components/user/TwoFactorAuthForm.vue index 8c4db43ef..b5419eebc 100644 --- a/frontend/src/components/user/TwoFactorAuthForm.vue +++ b/frontend/src/components/user/TwoFactorAuthForm.vue @@ -43,6 +43,7 @@ @@ -179,13 +181,19 @@ export default { if (!valid) { return } - const resp = await account.finalizeTFASetup(this.pinCode) - this.key = null - this.qrURL = null - this.tokens = resp.data.tokens - Cookies.set('token', resp.data.access, { sameSite: 'strict' }) - Cookies.set('refreshToken', resp.data.refresh, { sameSite: 'strict' }) - this.$store.dispatch('auth/initialize') + try { + const resp = await account.finalizeTFASetup(this.pinCode) + this.key = null + this.qrURL = null + this.tokens = resp.data.tokens + Cookies.set('token', resp.data.access, { sameSite: 'strict' }) + Cookies.set('refreshToken', resp.data.refresh, { sameSite: 'strict' }) + this.$store.dispatch('auth/initialize') + } catch (err) { + if (err.response.status === 400) { + this.$refs.observer.setErrors(err.response.data) + } + } }, async disableTFA () { const isValid = await this.$refs.observer.validate()