fix: use safeDecodeURIComponent for location fields in user detection

This commit is contained in:
Exlaso 2025-06-04 12:43:02 +05:30
parent 0736289ce1
commit bf94c5dc73

View file

@ -11,6 +11,7 @@ import {
MOBILE_OS,
MOBILE_SCREEN_WIDTH,
} from './constants';
import { safeDecodeURIComponent } from '@/lib/url';
const MAXMIND = 'maxmind';
@ -146,9 +147,9 @@ export async function getClientInfo(request: Request, payload: Record<string, an
const userAgent = payload?.userAgent || request.headers.get('user-agent');
const ip = payload?.ip || getIpAddress(request.headers);
const location = await getLocation(ip, request.headers, !!payload?.ip);
const country = decodeURIComponent(location?.country || 'UNKNOWN');
const region = decodeURIComponent(location?.region || 'UNKNOWN');
const city = decodeURIComponent(location?.city || 'UNKNOWN');
const country = safeDecodeURIComponent(location?.country);
const region = safeDecodeURIComponent(location?.region);
const city = safeDecodeURIComponent(location?.city);
const browser = browserName(userAgent);
const os = detectOS(userAgent) as string;
const device = getDevice(payload?.screen, os);