admin管理员组文章数量:1415476
Inside one of my next.js api route,
For example: pages/api/example.js
I have the following simple code. Then, inside this route, I have post request to a server.
export default async function example(req, res) {
const data = await axios.post(
https://another_server_Url, // another server api
{
data
})
res.status(200).json({ name: 'John Doe' })
}
My question is if the another_server
api implement a rating-limiting mechanism,
It's possible for me to get the user IP address first, then somehow pass the IP address via the axios request. So the another_server
api can recognize the true ip.
As far as I understand the current code, the next.js server somehow bees a proxy.
The problem now is that because I called the Api inside my next router api, the ip address will always be my next.js
server.
Inside one of my next.js api route,
For example: pages/api/example.js
I have the following simple code. Then, inside this route, I have post request to a server.
export default async function example(req, res) {
const data = await axios.post(
https://another_server_Url, // another server api
{
data
})
res.status(200).json({ name: 'John Doe' })
}
My question is if the another_server
api implement a rating-limiting mechanism,
It's possible for me to get the user IP address first, then somehow pass the IP address via the axios request. So the another_server
api can recognize the true ip.
As far as I understand the current code, the next.js server somehow bees a proxy.
The problem now is that because I called the Api inside my next router api, the ip address will always be my next.js
server.
1 Answer
Reset to default 4You may get client's IP from req.headers['x-forwarded-for']
- have a look at: How to determine a user's IP address in node. Then, pass this IP within axios POST request body to another_server
.
Edit:
In response to your ment below the implementation largely depends on the configuration of the backend server (another_server
) and how it reads the client IP. For example, check if it uses request headers to determine the IP - if so, identify the particular header and overwrite it in axios call to include original client IP, e.g:
const clientIp = (req.headers['x-forwarded-for'] || '').split(',').pop().trim() ||
req.socket.remoteAddress;
const data = await axios({
method: 'post',
url: 'https://google.',
headers: {
'x-forwarded-for': clientIp
},
// ...
});
Another solution would be to simply send the request from the client side straight to another_server
and skip the problem altogether, but I assume it's not a viable solution in your case.
本文标签: javascriptNextjs api route with IP addressStack Overflow
版权声明:本文标题:javascript - Next.js api route with IP address - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745156384a2645196.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论