Nuxt (Vue)
// server/api/signup.post.ts
export default defineEventHandler(async (event) => {
const body = await readBody(event);
const { email } = body;
try {
const r = await fetch(
`https://api.disposableguard.com/v1/check?email=${encodeURIComponent(email)}`,
{
headers: {
Authorization: `Bearer ${process.env.DG_KEY}`,
},
}
);
if (r.ok) {
const data = await r.json();
if (data.is_disposable) {
throw createError({
statusCode: 400,
message: "Please use a real email address.",
});
}
}
} catch (e: any) {
if (e.statusCode) throw e;
// fail-open for network errors
}
// ...signup logic
return { ok: true };
});Notes
Add `DG_KEY` to `.env`. The server API route runs on the server side.