feat: custom domain dns check
This commit is contained in:
parent
741fec5910
commit
c96edcdc79
|
|
@ -1,6 +1,6 @@
|
|||
import { OUR_DOMAIN } from "./env"
|
||||
|
||||
export const getTenant = (request: Request, search: URLSearchParams) => {
|
||||
export const getTenant = async (request: Request, search: URLSearchParams) => {
|
||||
const host = request.headers.get("host")
|
||||
|
||||
if (!OUR_DOMAIN) {
|
||||
|
|
@ -21,7 +21,16 @@ export const getTenant = (request: Request, search: URLSearchParams) => {
|
|||
return subdomain
|
||||
}
|
||||
if (host !== OUR_DOMAIN) {
|
||||
return host
|
||||
const res = await fetch(
|
||||
`https://cloudflare-dns.com/dns-query?name=_xlog-challenge.${host}&type=TXT`,
|
||||
{
|
||||
headers: {
|
||||
accept: "application/dns-json",
|
||||
},
|
||||
},
|
||||
)
|
||||
const txt = await res.json()
|
||||
return txt?.Answer?.[0]?.data.replace(/^"|"$/g, "")
|
||||
}
|
||||
}
|
||||
return
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ const ALWAYS_REPLAY_ROUTES = [
|
|||
"/api/logout",
|
||||
]
|
||||
|
||||
export default function middleware(req: NextRequest) {
|
||||
export default async function middleware(req: NextRequest) {
|
||||
const { pathname } = req.nextUrl
|
||||
|
||||
if (pathname === "/favicon.ico") {
|
||||
|
|
@ -39,7 +39,7 @@ export default function middleware(req: NextRequest) {
|
|||
})
|
||||
}
|
||||
|
||||
const tenant = getTenant(req, req.nextUrl.searchParams)
|
||||
const tenant = await getTenant(req, req.nextUrl.searchParams)
|
||||
|
||||
if (pathname.startsWith("/api/") || pathname.startsWith("/dashboard")) {
|
||||
return NextResponse.next()
|
||||
|
|
|
|||
Loading…
Reference in New Issue