mirror of
https://github.com/KeyZox71/knl_meowscendence.git
synced 2025-12-31 21:56:41 +01:00
「✨」 feat: added 2fa checker
This commit is contained in:
@ -2,6 +2,7 @@ import fastifyJWT from '@fastify/jwt';
|
||||
import fastifyCookie from '@fastify/cookie';
|
||||
import cors from '@fastify/cors';
|
||||
|
||||
import { totpCheck } from './totpCheck.js';
|
||||
import { register } from './register.js';
|
||||
import { login } from './login.js';
|
||||
import { gRedir } from './gRedir.js';
|
||||
@ -28,7 +29,7 @@ export default async function(fastify, options) {
|
||||
fastify.register(cors, {
|
||||
origin: process.env.CORS_ORIGIN || 'http://localhost:5173',
|
||||
credentials: true,
|
||||
methods: [ "GET", "POST", "PATCH", "DELETE", "OPTIONS" ]
|
||||
methods: ["GET", "POST", "PATCH", "DELETE", "OPTIONS"]
|
||||
});
|
||||
|
||||
fastify.register(fastifyJWT, {
|
||||
@ -54,6 +55,9 @@ export default async function(fastify, options) {
|
||||
fastify.get('/me', { preHandler: [fastify.authenticate] }, async (request, reply) => {
|
||||
return { user: request.user };
|
||||
});
|
||||
fastify.get('/2fa', { preHandler: [fastify.authenticate] }, async (request, reply) => {
|
||||
return totpCheck(request, reply);
|
||||
});
|
||||
|
||||
// GOOGLE sign in
|
||||
fastify.get('/login/google', async (request, reply) => {
|
||||
@ -119,5 +123,5 @@ export default async function(fastify, options) {
|
||||
|
||||
fastify.get('/logout', {}, async (request, reply) => { return logout(reply, fastify); })
|
||||
|
||||
fastify.delete('/', { preHandler: fastify.authenticate }, async (request, reply) => { return remove(request, reply, fastify)})
|
||||
fastify.delete('/', { preHandler: fastify.authenticate }, async (request, reply) => { return remove(request, reply, fastify) })
|
||||
}
|
||||
|
||||
24
src/api/auth/totpCheck.js
Normal file
24
src/api/auth/totpCheck.js
Normal file
@ -0,0 +1,24 @@
|
||||
import authDB from '../../utils/authDB.js';
|
||||
|
||||
/**
|
||||
* @param {import('fastify').FastifyRequest} request
|
||||
* @param {import('fastify').FastifyReply} reply
|
||||
*/
|
||||
export async function totpCheck(request, reply) {
|
||||
try {
|
||||
const user = request.user;
|
||||
|
||||
if (authDB.checkUser(user) === false) {
|
||||
return reply.code(400).send({ error: "User does not exist" });
|
||||
}
|
||||
|
||||
return reply
|
||||
.code(200)
|
||||
.send({
|
||||
totp: authDB.isTOTPEnabled(user)
|
||||
});
|
||||
} catch (err) {
|
||||
fastify.log.error(err);
|
||||
return reply.code(500).send({ error: "Internal server error" });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user