Added logout button
continuous-integration/drone/push Build is passing Details

main
Filip Borum Poulsen 3 years ago
parent aeae70c0fb
commit c57fb23a56

@ -63,6 +63,7 @@ export default {
<RouterLink to="/admin/trainer" v-if="loggedIn && user.isAdmin">Trænere</RouterLink>
<RouterLink to="/admin/center" v-if="loggedIn && user.isAdmin">Centre</RouterLink>
<RouterLink to="/user/profile" v-if="loggedIn">Profil</RouterLink>
<RouterLink to="/logout" v-if="loggedIn">Log ud</RouterLink>
</div>
</div>
</div>

@ -72,6 +72,14 @@ const router = createRouter({
// this generates a separate chunk (About.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import('../views/user/UserProfile.vue')
},
{
path: '/logout',
name: 'Logout',
// route level code-splitting
// this generates a separate chunk (About.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import('../views/Logout.vue')
}
]
})

@ -0,0 +1,23 @@
<template></template>
<script lang="ts">
import { useLoginStore } from '@/stores/login'
export default {
name: "Logout",
setup() {
const loginStore = useLoginStore();
const { setLoginState } = loginStore;
return { setLoginState };
},
async created() {
await fetch(`${import.meta.env.VITE_BASE_API_URL}/logout`, {
credentials: import.meta.env.DEV ? "include" : undefined,
method: "POST"
});
this.setLoginState(false);
this.$router.push({ path: "/" });
}
}
</script>

@ -3,6 +3,7 @@ import express, { Express, Router } from "express";
const router: Router = express.Router();
import login from "./login"
import logout from "./logout"
import register from "./register"
import center from "./center";
import trainer from "./trainer/index";
@ -18,6 +19,7 @@ import { bodyParserErrorHandler } from "../middlewares/bodyParserErrorHandler";
router.use(stripeWebhook);
router.use(express.json(), bodyParserErrorHandler());
router.use(login);
router.use(logout);
router.use(register);
router.use(center);
router.use(trainer);

@ -0,0 +1,11 @@
import express, { Express, Router, Request, Response } from "express";
const router: Router = express.Router();
router.post("/logout", async (req: Request, res: Response) => {
res.clearCookie("auth-token");
return res.sendStatus(204);
})
export default router;
Loading…
Cancel
Save