如何使用 SvelteKit 和 TypeScript 将用户的公共 IP 添加到 X-Forwarded-For 标头?

问题描述 投票:0回答:1

我正在使用 SvelteKit 和 TypeScript 开发一个 Web 应用程序。在登录过程中,我的目标是在标头中发送登录用户的公共IP信息。

event.locals.clientIP = event.getClientAddress();

event.getClientAddress()
只需返回本地ip即可。

如何正确将登录用户的公网IP添加到X-Forwarded-For标头中?

附加信息:

由于潜在的安全漏洞,我不想使用外部 API 来获取公共 IP。有其他方法获取IP吗?

ip-address sveltekit public
1个回答
0
投票

可以在服务器端获取客户端IP:

+page.server.ts:

/** @type {import('@sveltejs/kit').RequestHandler} */
export async function load(event) {
    return { ip: event.getClientAddress() };
}

并在客户端访问它:

+page.svelte:

<script lang="ts">
    import type { PageData } from './$types';
    export let data: PageData;
</script>

{#if data?.ip}
    <p>ip to test: {data.ip}</p>
{/if}

请注意,在本地主机上运行时,您将获得本地 IP,但部署到生产环境后,将返回用户 IP。

© www.soinside.com 2019 - 2024. All rights reserved.