From c405e008e40f54c39e69833c04ac1d770aca93cc Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Fri, 18 Dec 2020 11:31:16 +0100 Subject: [PATCH] checks that a cookie exists after login. If not, throw an error saying that no cookie can be set --- webapp/components/LoginForm/LoginForm.vue | 6 +++++- webapp/locales/de.json | 1 + webapp/locales/en.json | 1 + webapp/store/auth.js | 6 ++++++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/webapp/components/LoginForm/LoginForm.vue b/webapp/components/LoginForm/LoginForm.vue index 695c7e5ec..28998d3fc 100644 --- a/webapp/components/LoginForm/LoginForm.vue +++ b/webapp/components/LoginForm/LoginForm.vue @@ -91,7 +91,11 @@ export default { this.$toast.success(this.$t('login.success')) this.$emit('success') } catch (err) { - this.$toast.error(this.$t('login.failure')) + if (err.message === 'Error: no-cookie') { + this.$toast.error(this.$t('login.no-cookie')) + } else { + this.$toast.error(this.$t('login.failure')) + } } }, toggleShowPassword(event) { diff --git a/webapp/locales/de.json b/webapp/locales/de.json index 1e082f434..def3bd0b7 100644 --- a/webapp/locales/de.json +++ b/webapp/locales/de.json @@ -315,6 +315,7 @@ "moreInfo": "Was ist {APPLICATION_NAME}?", "moreInfoHint": "zur Präsentationsseite", "no-account": "Du hast noch kein Benutzerkonto?", + "no-cookie": "Es kann kein Cookie angelegt werden. Du must Cookies akzeptieren.", "password": "Dein Passwort", "register": "Benutzerkonto erstellen", "success": "Du bist eingeloggt!" diff --git a/webapp/locales/en.json b/webapp/locales/en.json index 1d86e2e52..7d0f6cf3a 100644 --- a/webapp/locales/en.json +++ b/webapp/locales/en.json @@ -315,6 +315,7 @@ "moreInfo": "What is {APPLICATION_NAME}?", "moreInfoHint": "to the presentation page", "no-account": "Don't have an account?", + "no-cookie": "No cookie can be set. You must accept cookies.", "password": "Your Password", "register": "Sign up", "success": "You are logged in!" diff --git a/webapp/store/auth.js b/webapp/store/auth.js index 072c13bd8..cb8627b79 100644 --- a/webapp/store/auth.js +++ b/webapp/store/auth.js @@ -1,6 +1,9 @@ import gql from 'graphql-tag' import { VERSION } from '~/constants/terms-and-conditions-version.js' import { currentUserQuery } from '~/graphql/User' +import Cookie from 'universal-cookie' + +const cookies = new Cookie() export const state = () => { return { @@ -99,6 +102,9 @@ export const actions = { await this.app.$apolloHelpers.onLogin(login) commit('SET_TOKEN', login) await dispatch('fetchCurrentUser') + if (cookies.get('ocelot-social-token') === undefined) { + throw new Error('no-cookie') + } } catch (err) { throw new Error(err) } finally {