mirror of
https://github.com/Bubka/2FAuth.git
synced 2025-08-14 15:58:36 +02:00
Enable the Vue 3 front-end
This commit is contained in:
28
resources/js/router/middlewares/authGuard.js
vendored
Normal file
28
resources/js/router/middlewares/authGuard.js
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
import authService from '@/services/authService'
|
||||
|
||||
export default async function authGuard({ to, next, nextMiddleware, stores }) {
|
||||
const { user } = stores
|
||||
|
||||
// No authenticated user on the front-end side, we try to
|
||||
// get an active user from the back-end side
|
||||
if (! user.isAuthenticated) {
|
||||
await authService.getCurrentUser({ returnError: true }).then(async (response) => {
|
||||
const currentUser = response.data
|
||||
await user.loginAs({
|
||||
name: currentUser.name,
|
||||
email: currentUser.email,
|
||||
preferences: currentUser.preferences,
|
||||
isAdmin: currentUser.is_admin,
|
||||
})
|
||||
})
|
||||
.catch(error => {
|
||||
// nothing to do
|
||||
})
|
||||
}
|
||||
|
||||
if (! user.isAuthenticated) {
|
||||
next({ name: 'login' })
|
||||
} else {
|
||||
nextMiddleware()
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user