♻️ refactor: app token and oAuth endpoint request

These changes include:
1. Replacing the app token with a standard authorization barrier.
2. Changing the response body in the OAuth request by wrapping the endpoint link with a structure instead of placing it in the callback payload data.
This commit is contained in:
Rafi Arrafif
2026-01-07 23:56:44 +07:00
parent d3fcf281b3
commit d8e8ec3fa7
4 changed files with 23 additions and 18 deletions

View File

@ -3,10 +3,14 @@ import { returnErrorResponse } from "../../helpers/callback/httpResponse";
export const appAccessTokenMiddleware = () => export const appAccessTokenMiddleware = () =>
new Elysia().onRequest(({ request, set }) => { new Elysia().onRequest(({ request, set }) => {
const headerToken = request.headers.get("access_token"); const headerToken = request.headers.get("authorization");
const storedToken = process.env.API_KEY; if (!headerToken) return returnErrorResponse(set, 401, "Unauthorized");
if (headerToken !== storedToken) { const storedToken = process.env.API_KEY;
return returnErrorResponse(set, 403, "Unauthorized"); const [scheme, token] = headerToken.split(" ");
}
if (scheme !== "Bearer" || !token)
return returnErrorResponse(set, 401, "Invalid auth format");
if (token !== storedToken)
return returnErrorResponse(set, 403, "Forbidden");
}); });

View File

@ -1,10 +1,17 @@
import { Context } from "elysia"; import { Context } from "elysia";
import { mainErrorHandler } from "../../../helpers/error/handler"; import { mainErrorHandler } from "../../../helpers/error/handler";
import { getOauthProvidersService } from "../services/http/getOauthProviders.service"; import { getOauthProvidersService } from "../services/http/getOauthProviders.service";
import { returnReadResponse } from "../../../helpers/callback/httpResponse";
export const getOauthProvidersController = (ctx: Context) => { export const getOauthProvidersController = (ctx: Context) => {
try { try {
return getOauthProvidersService(); const oauthProviderServices = getOauthProvidersService();
return returnReadResponse(
ctx.set,
200,
"Getting all oauth available list",
oauthProviderServices
);
} catch (error) { } catch (error) {
return mainErrorHandler(ctx.set, error); return mainErrorHandler(ctx.set, error);
} }

View File

@ -6,10 +6,7 @@ export const githubRequestController = async (
ctx: Context & { query: { callback?: string } } ctx: Context & { query: { callback?: string } }
) => { ) => {
const loginUrl = await githubRequestService(ctx.query.callback); const loginUrl = await githubRequestService(ctx.query.callback);
return returnReadResponse( return returnReadResponse(ctx.set, 200, "Login URL generated successfully", {
ctx.set, endpointUrl: loginUrl,
200, });
"Login URL generated successfully",
loginUrl
);
}; };

View File

@ -8,12 +8,9 @@ export const googleRequestController = async (
) => { ) => {
try { try {
const loginUrl = await googleRequestService(ctx.query.callback); const loginUrl = await googleRequestService(ctx.query.callback);
return returnReadResponse( return returnReadResponse(ctx.set, 200, "Google login url created!", {
ctx.set, endpointUrl: loginUrl,
200, });
"Google login url created!",
loginUrl
);
} catch (error) { } catch (error) {
return mainErrorHandler(ctx.set, error); return mainErrorHandler(ctx.set, error);
} }