diff --git a/components/AccountSwitch.vue b/components/AccountSwitch.vue index 8331da4d1..fe8186ce4 100644 --- a/components/AccountSwitch.vue +++ b/components/AccountSwitch.vue @@ -59,7 +59,7 @@ export default { async validateAccounts() { for (let [username, {token}] of Object.entries(this.accounts)) { try { - const user = await this.$axios.$get(`/user/current`, { + const user = await this.$axios.$get(`/user/current?no_cookie`, { headers: { authorization: 'Bearer ' + token, }, diff --git a/server/routes/user.js b/server/routes/user.js index 423bcc50a..8fa0201f6 100644 --- a/server/routes/user.js +++ b/server/routes/user.js @@ -298,7 +298,9 @@ router.use(handleErrorAsync(reloadUser)); export const loadCurrentUser = async (req, res) => { if (!req.user) { - res.clearCookie('token'); + if (req.query.no_cookie === undefined) { + res.clearCookie('token'); + } return res.json(null); } @@ -312,7 +314,9 @@ export const loadCurrentUser = async (req, res) => { delete dbUser.timesheets; const token = await issueAuthentication(req.db, dbUser, false); - res.cookie('token', token, cookieSettings); + if (req.query.no_cookie === undefined) { + res.cookie('token', token, cookieSettings); + } req.rawUser = jwt.validate(token); req.user = req.rawUser;