51 lines
1.3 KiB
TypeScript
51 lines
1.3 KiB
TypeScript
import decrypt from "@moduletrace/datasquirel/dist/package-shared/functions/dsql/decrypt";
|
|
|
|
const AuthServerPort = 3177;
|
|
|
|
type AdminPagesAuth = {
|
|
date: number;
|
|
user_id: number;
|
|
url?: string;
|
|
};
|
|
|
|
const server = Bun.serve({
|
|
port: AuthServerPort,
|
|
hostname: "0.0.0.0",
|
|
fetch(req) {
|
|
console.log("req.headers", req.headers);
|
|
|
|
try {
|
|
const srcOrigin = req.headers.get("referer");
|
|
const url = new URL(srcOrigin!);
|
|
|
|
console.log("url", url);
|
|
|
|
const key = url.searchParams.get("key");
|
|
|
|
const decryptedKey = JSON.parse(
|
|
decrypt({ encryptedString: key! }),
|
|
) as AdminPagesAuth;
|
|
|
|
const decrptedUrl = decryptedKey.url;
|
|
|
|
console.log("decrptedUrl", decrptedUrl);
|
|
|
|
if (!srcOrigin || !decrptedUrl) {
|
|
throw new Error(`Origin Not Found!`);
|
|
}
|
|
|
|
return new Response("Auth Success!", {
|
|
status: 200,
|
|
});
|
|
} catch (error: any) {
|
|
console.log(`Auth Server Error => ${error.message}`);
|
|
|
|
return new Response("Auth Failed!", {
|
|
status: 401,
|
|
});
|
|
}
|
|
},
|
|
});
|
|
|
|
console.log(`Auth Server running at http://localhost:${server.port}/ ...`);
|