1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-05-17 14:22:02 +00:00
bramw_baserow/web-frontend/modules/core/middleware/authentication.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

32 lines
891 B
JavaScript
Raw Permalink Normal View History

import {
getTokenIfEnoughTimeLeft,
setToken,
setUserSessionCookie,
} from '@baserow/modules/core/utils/auth'
export default function ({ store, req, app, route, redirect }) {
// If nuxt generate or already authenticated, pass this middleware
if ((process.server && !req) || store.getters['auth/isAuthenticated']) return
const userSession = route.query.user_session
if (userSession) {
setUserSessionCookie(app, userSession)
}
// token can be in the query string (SSO) or in the cookies (previous session)
2022-10-28 16:04:23 +00:00
let refreshToken = route.query.token
if (refreshToken) {
setToken(app, refreshToken)
} else {
2022-10-28 16:04:23 +00:00
refreshToken = getTokenIfEnoughTimeLeft(app)
}
if (refreshToken) {
return store.dispatch('auth/refresh', refreshToken).catch((error) => {
if (error.response?.status === 401) {
return redirect({ name: 'login' })
}
})
}
}