diff --git a/src/api/auth/default.js b/src/api/auth/default.js index 6a15651..78e7411 100644 --- a/src/api/auth/default.js +++ b/src/api/auth/default.js @@ -10,6 +10,7 @@ import { gRegisterCallback } from './gRegisterCallback.js'; import { totpSetup } from './totpSetup.js'; import { totpDelete } from './totpDelete.js'; import { totpVerify } from './totpVerify.js'; +import { logout } from './logout.js'; const saltRounds = 10; export const appName = process.env.APP_NAME || 'knl_meowscendence'; @@ -107,4 +108,6 @@ export default async function(fastify, options) { } } }, async (request, reply) => { return register(request, reply, saltRounds, fastify); }); + + fastify.get('/logout', {}, async (request, reply) => { return logout(request, reply, fastify); }) } diff --git a/src/api/auth/logout.js b/src/api/auth/logout.js new file mode 100644 index 0000000..d4117b8 --- /dev/null +++ b/src/api/auth/logout.js @@ -0,0 +1,17 @@ +/** + * @async + * @param {import("fastify").FastifyReply} reply + * + * @returns {import("fastify").FastifyReply} + */ +export async function logout(reply) { + try { + return reply + .code(200) + .clearCookie() + .send({ msg: "Logout successful" }); + } catch { + fastify.log.error(err); + return reply.code(500).send({ error: "Internal server error" }); + } +}