Skip to content

Commit 77e6a4d

Browse files
authored
Use request-ip (#29)
* feat(auth): implement Google sign-in and linking with password accounts * Change Contact Mail ID * use request-ip
1 parent 5a5c316 commit 77e6a4d

3 files changed

Lines changed: 24 additions & 7 deletions

File tree

lib/rate-limit.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
1+
import requestIp from "request-ip";
12
import dbConnect from "@/lib/db";
23
import RateLimit from "@/models/RateLimit";
34

45
/**
5-
* Resolve the real client IP. On Netlify the only trustworthy value is
6-
* x-nf-client-connection-ip (set by the edge). x-forwarded-for is
7-
* client-spoofable, so it's a last resort and we take the left-most hop only.
6+
* Resolve the real client IP.
87
*/
98
export function getClientIp(request: Request): string {
109
const netlify = request.headers.get("x-nf-client-connection-ip");
1110
if (netlify) return netlify.trim();
1211

13-
const xff = request.headers.get("x-forwarded-for");
14-
if (xff) return xff.split(",")[0].trim();
15-
16-
return request.headers.get("x-real-ip")?.trim() || "unknown";
12+
const headers = Object.fromEntries(request.headers);
13+
return requestIp.getClientIp({ headers })?.trim() || "unknown";
1714
}
1815

1916
/**

package-lock.json

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
"react-spinners": "^0.15.0",
8080
"react-toastify": "^11.0.5",
8181
"recharts": "^2.12.7",
82+
"request-ip": "^3.3.0",
8283
"sonner": "^1.5.0",
8384
"tailwind-merge": "^2.6.0",
8485
"tailwindcss": "3.3.3",
@@ -91,6 +92,7 @@
9192
},
9293
"devDependencies": {
9394
"@types/locomotive-scroll": "^4.1.4",
95+
"@types/request-ip": "^0.0.41",
9496
"@types/three": "^0.184.1",
9597
"@types/webpack": "^5.28.5"
9698
}

0 commit comments

Comments
 (0)