gpt4 book ai didi

javascript - 如何在 Nuxt 的 asyncData 方法中获取用户的 IP?

转载 作者:行者123 更新时间:2023-12-03 06:48:52 29 4
gpt4 key购买 nike

Nuxt 使用 asyncData 在服务器端运行代码,然后将其与数据对象合并。

我想调用电话,要求我知道用户的 IP。 I see that I can get to the req object确实有它,但它被埋没了deep, deep在那里,我担心这不是一种可靠的方法。

如何在服务器端而不是客户端访问调用用户的 IP 地址?

最佳答案

如果 nuxt 在 nginx 等代理后面运行,那么可以通过读取 x-real-ip 或 x-forwarded-for 来获取 asyncData 中客户端的 IP 地址。请注意,如果调用通过了其他代理,则 x-forwarded-for 可以包含逗号分隔的 IP(如果有多个条目,则客户端是第一个)。

确保在您的 nginx 站点配置中设置 header

proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

然后就可以读取asyncData中的headers了:

  async asyncData(context) {
if (process.server) {
const req = context.req
const headers = (req && req.headers) ? Object.assign({}, req.headers) : {}
const xForwardedFor = headers['x-forwarded-for']
const xRealIp = headers['x-real-ip']
console.log(xForwardedFor)
console.log(xRealIp)
}
}

关于javascript - 如何在 Nuxt 的 asyncData 方法中获取用户的 IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57335203/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com