Skip to content

Commit

Permalink
Merge pull request #12 from nomadoda/patch-1
Browse files Browse the repository at this point in the history
  • Loading branch information
OrJDev committed Mar 15, 2023
2 parents 68c1e45 + f217e91 commit cbf6d75
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 9 deletions.
14 changes: 9 additions & 5 deletions examples/next/src/server/trpc/trpc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,17 @@ const root = initTRPC.context<Context>().create({
},
});

const getFingerPrint = (req: NextApiRequest) => {
const ip = req.socket.remoteAddress ?? req.headers["x-forwarded-for"];
return (Array.isArray(ip) ? ip[0] : ip) ?? "127.0.0.1";
};
const getFingerprint = (req: NextApiRequest) => {
const forwarded = req.headers["x-forwarded-for"]
const ip = forwarded
? (typeof forwarded === "string" ? forwarded : forwarded[0])?.split(/, /)[0]
: req.socket.remoteAddress
return ip || "127.0.0.1"
}

export const rateLimiter = createTRPCUpstashLimiter({
root,
fingerprint: (ctx) => getFingerPrint(ctx.req),
fingerprint: (ctx) => getFingerprint(ctx.req),
windowMs: 20000,
message: (hitInfo) =>
`Too many requests, please try again later. ${Math.ceil(
Expand Down
12 changes: 8 additions & 4 deletions packages/upstash/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,17 @@ type Context = {
}
const root = initTRPC.context<Context>().create()

const getFingerPrint = (req: NextApiRequest) => {
const ip = req.socket.remoteAddress ?? req.headers['x-forwarded-for']
return (Array.isArray(ip) ? ip[0] : ip) ?? '127.0.0.1'
const getFingerprint = (req: NextApiRequest) => {
const forwarded = req.headers["x-forwarded-for"]
const ip = forwarded
? (typeof forwarded === "string" ? forwarded : forwarded[0])?.split(/, /)[0]
: req.socket.remoteAddress
return ip || "127.0.0.1"
}

export const rateLimiter = createTRPCUpstashLimiter({
root,
fingerprint: (ctx, _input) => getFingerPrint(ctx.req),
fingerprint: (ctx, _input) => getFingerprint(ctx.req),
windowMs: 10000,
message: (hitInfo) =>
`Too many requests, please try again later. ${Math.ceil(
Expand Down

0 comments on commit cbf6d75

Please sign in to comment.