work
This commit is contained in:
parent
2c18a22443
commit
5aa5520e4c
@ -7,7 +7,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func SetupRouter(r *gin.Engine, authMiddleware gin.HandlerFunc) {
|
func SetupRouter(r *gin.Engine, authMiddleware gin.HandlerFunc) {
|
||||||
private := r.Group("/private")
|
private := r.Group("/gui")
|
||||||
// Gets the session from the cookie, and puts it in the current request.
|
// Gets the session from the cookie, and puts it in the current request.
|
||||||
if authMiddleware != nil {
|
if authMiddleware != nil {
|
||||||
private.Use(authMiddleware)
|
private.Use(authMiddleware)
|
||||||
|
|||||||
@ -43,7 +43,7 @@ func TestInitAuthEndpoints_authLogin(t *testing.T) {
|
|||||||
reqBody := loginRequest{Username: "admin", Password: *adminPass}
|
reqBody := loginRequest{Username: "admin", Password: *adminPass}
|
||||||
strReqBody, _ := json.Marshal(reqBody)
|
strReqBody, _ := json.Marshal(reqBody)
|
||||||
w := httptest.NewRecorder()
|
w := httptest.NewRecorder()
|
||||||
req, _ := http.NewRequest("POST", "/private/auth/login", strings.NewReader(string(strReqBody)))
|
req, _ := http.NewRequest("POST", "/gui/auth/login", strings.NewReader(string(strReqBody)))
|
||||||
r.ServeHTTP(w, req)
|
r.ServeHTTP(w, req)
|
||||||
|
|
||||||
assert.Equal(t, 200, w.Code)
|
assert.Equal(t, 200, w.Code)
|
||||||
@ -59,7 +59,7 @@ func TestInitAuthEndpoints_getMe(t *testing.T) {
|
|||||||
SetupRouter(r, MockAuthMiddleware(*user))
|
SetupRouter(r, MockAuthMiddleware(*user))
|
||||||
|
|
||||||
w := httptest.NewRecorder()
|
w := httptest.NewRecorder()
|
||||||
req, _ := http.NewRequest("GET", "/private/auth/me", nil)
|
req, _ := http.NewRequest("GET", "/gui/auth/me", nil)
|
||||||
r.ServeHTTP(w, req)
|
r.ServeHTTP(w, req)
|
||||||
|
|
||||||
strUser, _ := json.Marshal(user)
|
strUser, _ := json.Marshal(user)
|
||||||
|
|||||||
@ -91,7 +91,7 @@ async function login() {
|
|||||||
// For now, we'll just simulate a successful login
|
// For now, we'll just simulate a successful login
|
||||||
console.log('Login attempted with:', {username: username.value, password: password.value})
|
console.log('Login attempted with:', {username: username.value, password: password.value})
|
||||||
|
|
||||||
const res = await fetch("/private/auth/login", {
|
const res = await fetch("/gui/auth/login", {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
import { createRouter, createWebHistory } from 'vue-router/auto'
|
import { createRouter, createWebHistory } from 'vue-router/auto'
|
||||||
import { setupLayouts } from 'virtual:generated-layouts'
|
import { setupLayouts } from 'virtual:generated-layouts'
|
||||||
import { routes } from 'vue-router/auto-routes'
|
import { routes } from 'vue-router/auto-routes'
|
||||||
|
import {useAppStore} from "@/stores/app";
|
||||||
|
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
history: createWebHistory(import.meta.env.BASE_URL),
|
history: createWebHistory(import.meta.env.BASE_URL),
|
||||||
@ -33,4 +34,20 @@ router.isReady().then(() => {
|
|||||||
localStorage.removeItem('vuetify:dynamic-reload')
|
localStorage.removeItem('vuetify:dynamic-reload')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
router.beforeEach(async (to, from, next) => {
|
||||||
|
const appStore = useAppStore();
|
||||||
|
await appStore.updateUser()
|
||||||
|
|
||||||
|
if (to.meta.public) {
|
||||||
|
next()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!appStore.user) {
|
||||||
|
next('/signin')
|
||||||
|
} else {
|
||||||
|
next()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
export default router
|
export default router
|
||||||
|
|||||||
@ -1,8 +1,18 @@
|
|||||||
// Utilities
|
// Utilities
|
||||||
import { defineStore } from 'pinia'
|
import {defineStore} from 'pinia'
|
||||||
|
|
||||||
export const useAppStore = defineStore('app', {
|
export const useAppStore = defineStore('app', {
|
||||||
state: () => ({
|
state: () => ({
|
||||||
user: null,
|
user: null,
|
||||||
}),
|
}),
|
||||||
|
actions: {
|
||||||
|
async updateUser() {
|
||||||
|
const res = await fetch('/gui/auth/me')
|
||||||
|
if (res.status === 200) {
|
||||||
|
this.user = await res.json()
|
||||||
|
} else if (res.status === 401) {
|
||||||
|
this.user = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@ -71,7 +71,7 @@ export default defineConfig({
|
|||||||
server: {
|
server: {
|
||||||
port: 3000,
|
port: 3000,
|
||||||
proxy: {
|
proxy: {
|
||||||
'/private': 'http://localhost:8080',
|
'/gui': 'http://localhost:8080',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
css: {
|
css: {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user