feat: Working version with google drive storage.

This commit is contained in:
charlesgauthereau
2026-01-24 12:13:55 +01:00
parent 4eeeef3427
commit a64a80910d
18 changed files with 397 additions and 562 deletions
+19 -27
View File
@@ -1,31 +1,23 @@
import { NextResponse } from "next/server";
import { google } from "googleapis";
export async function GET(request: Request) {
try {
const url = new URL(request.url);
const code = url.searchParams.get("code");
const clientId = url.searchParams.get("clientId");
const clientSecret = url.searchParams.get("clientSecret");
const redirectUri = url.searchParams.get("redirectUri");
const url = new URL(request.url);
const code = url.searchParams.get("code");
if (!code || !clientId || !clientSecret || !redirectUri) {
return NextResponse.json({ error: "Missing parameters" }, { status: 400 });
const success = Boolean(code);
return new Response(
`
<!DOCTYPE html>
<html>
<body>
<h1>${success ? "Success" : "Failed"}</h1>
</body>
</html>
`,
{
status: success ? 200 : 400,
headers: {
"Content-Type": "text/html; charset=utf-8",
},
}
try {
const oauth2Client = new google.auth.OAuth2(clientId, clientSecret, redirectUri);
const { tokens } = await oauth2Client.getToken(code);
// Save tokens.refresh_token securely in your DB here
return NextResponse.json(tokens);
} catch (err: any) {
console.error("Error exchanging code:", err);
return NextResponse.json({ error: "Failed to exchange code" }, { status: 500 });
}
} catch (error) {
console.error("Error in GET handler:", error);
return NextResponse.json({ error: "Internal server error" }, { status: 500 });
}
);
}