TKK_E32232276/supabase/functions/delete-unverified-users/index.ts

41 lines
960 B
TypeScript

import "@supabase/functions-js/edge-runtime.d.ts";
import { createClient } from "https://esm.sh/@supabase/supabase-js@2";
Deno.serve(async () => {
const supabase = createClient(
Deno.env.get("SUPABASE_URL")!,
Deno.env.get("SUPABASE_SERVICE_ROLE_KEY")!,
);
const fiveMinutesAgo = new Date(Date.now() - 24 * 60 * 60 * 1000);
const { data, error } = await supabase.auth.admin.listUsers();
if (error) {
return new Response(
JSON.stringify({ error: error.message }),
{ status: 500 },
);
}
const users = data.users;
const targetUsers = users.filter((user) => {
return (
!user.email_confirmed_at &&
new Date(user.created_at) < fiveMinutesAgo
);
});
for (const user of targetUsers) {
await supabase.auth.admin.deleteUser(user.id);
}
return new Response(
JSON.stringify({
deleted: targetUsers.length,
}),
{ headers: { "Content-Type": "application/json" } },
);
});