Mr. Doge Token Route
mrdoge-ui/mrdoge-token-routeFreeItem
Server route that mints short-lived SDK tokens for the browser client, using @mrdoge/node and your MRDOGE_ODDS_API_KEY.
Install it
npx shadcn@latest add https://mrdoge.co/r/mrdoge-token-route.jsonSource
1import "server-only"2import { NextResponse } from "next/server"3import { MrDoge } from "@mrdoge/node"4import { isRateLimited } from "@/lib/rate-limit"56let client: MrDoge | null = null78function getClient() {9 if (!client) {10 client = new MrDoge({ apiKey: process.env.MRDOGE_ODDS_API_KEY! })11 }12 return client13}1415// This site has no user sessions to gate on (public docs/demo widgets),16// so this follows the SDK's own documented "anonymous public widget"17// pattern (see content/docs/(sdk)/authentication.mdx): rate-limit instead18// of a session check, and keep the minted token's blast radius short.19export async function POST(request: Request) {20 const ip = request.headers.get("x-forwarded-for")?.split(",")[0]?.trim() ?? "unknown"21 if (isRateLimited(ip)) {22 return NextResponse.json({ error: "Too many requests" }, { status: 429 })23 }2425 const { token, expiresAt } = await getClient().tokens.create({ ttl: 300 })26 return NextResponse.json({ token, expiresAt })27}
What it pulls in
npm packages
Other registry items
