28 lines
No EOL
908 B
TypeScript
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()
|
|
);
|
|
} |