forked from labring/sealos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
authCname.ts
30 lines (26 loc) · 889 Bytes
/
authCname.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import type { NextApiRequest, NextApiResponse } from 'next';
import { jsonRes } from '@/services/backend/response';
import dns from 'dns';
import type { AuthCnamePrams } from '@/api/params';
import { getErrText } from '@/utils/tools';
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
try {
const { publicDomain, customDomain } = req.body as AuthCnamePrams;
await (async () =>
new Promise((resolve, reject) => {
dns.resolveCname(customDomain, (err, address) => {
console.log(err, address);
if (err) return reject(err);
if (address[0] !== publicDomain)
return reject("Cname auth error: customDomain's cname is not equal to publicDomain");
resolve('');
});
}))();
jsonRes(res);
} catch (error) {
jsonRes(res, {
code: 500,
error
});
}
}