Skip to content

Commit

Permalink
Don't allow signup with disposable email addresses.
Browse files Browse the repository at this point in the history
Closes #45
  • Loading branch information
jaspermayone committed Mar 7, 2025
1 parent 4aeb046 commit ed426dc
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 0 deletions.
5 changes: 5 additions & 0 deletions bun.lock
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"bcrypt": "^5.1.1",
"body-parser": "^1.20.3",
"colors": "^1.4.0",
"disposable-email-detector": "^3.0.0",
"dotenv": "^16.4.7",
"express": "^4.21.2",
"express-jsdoc-swagger": "^1.8.0",
Expand Down Expand Up @@ -342,6 +343,8 @@

"diff": ["[email protected]", "", {}, "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A=="],

"disposable-email-detector": ["[email protected]", "", { "dependencies": { "disposable-email-detector": "^1.0.1" } }, "sha512-q/7bq+vXAupa8Z9eGlrpJ8qJ0Q3j8cgs15qvvdJNVnmFso8ludFFBVXoj4ALRfy66K92T9xdyWxl98RX9jlAiw=="],

"doctrine": ["[email protected]", "", { "dependencies": { "esutils": "^2.0.2" } }, "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w=="],

"dotenv": ["[email protected]", "", {}, "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ=="],
Expand Down Expand Up @@ -732,6 +735,8 @@

"body-parser/debug": ["[email protected]", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="],

"disposable-email-detector/disposable-email-detector": ["[email protected]", "", { "dependencies": { "disposable-email-detector": "^1.0.1" } }, "sha512-hqVTnwz4B8iuFefKcp6I3m8J/ZXiNzBZROD2t3lS2cZlo+/hkKrsMvn9i9wyuXTGZ0WUblC8h/gSzybF9nVWiQ=="],

"express/debug": ["[email protected]", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="],

"express-jsdoc-swagger/chalk": ["[email protected]", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"bcrypt": "^5.1.1",
"body-parser": "^1.20.3",
"colors": "^1.4.0",
"disposable-email-detector": "^3.0.0",
"dotenv": "^16.4.7",
"express": "^4.21.2",
"express-jsdoc-swagger": "^1.8.0",
Expand Down
8 changes: 8 additions & 0 deletions src/routes/user.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { sInvite } from "@prisma/client";
import bcrypt from "bcrypt";
import disposableEmailDetector from "disposable-email-detector";
import express from "express";

import { inviteToSlack } from "../func/slackInvite";
Expand Down Expand Up @@ -52,6 +53,13 @@ router.post("/signup", async (req, res) => {
return;
}

let isDisposable = await disposableEmailDetector(email);

if (isDisposable) {
res.status(400).json("Disposable email addresses are not allowed");
return;
}

// Check if the user already exists
const user = await prisma.user.findUnique({
where: {
Expand Down

0 comments on commit ed426dc

Please sign in to comment.