freshyo/apps/user-ui/app/api/auth/callback+api.ts
2026-01-24 00:13:15 +05:30

28 lines
No EOL
908 B
TypeScript

// import { BASE_URL, APP_SCHEME } from "@/utils/constants";
import constants from "@/src/constants";
const BASE_URL = constants.BASE_URL;
const APP_SCHEME = constants.APP_SCHEME;
export async function GET(request: Request) {
const incomingParams = new URLSearchParams(request.url.split("?")[1]);
const combinedPlatformAndState = incomingParams.get("state");
if (!combinedPlatformAndState) {
return Response.json({ error: "Invalid state" }, { status: 400 });
}
// strip platform to return state as it was set on the client
const platform = combinedPlatformAndState.split("|")[0];
const state = combinedPlatformAndState.split("|")[1];
const outgoingParams = new URLSearchParams({
code: incomingParams.get("code")?.toString() || "",
state,
});
return Response.redirect(
(platform === "web" ? BASE_URL : APP_SCHEME) +
"?" +
outgoingParams.toString()
);
}