Skip to content

Cloud Code Trigger request.ip no longer returns the client IP, but rather server instance IP #8382

Open
@mman

Description

@mman

New Issue Checklist

Issue Description

I rely on request.ip in my cloud code triggers to determine what IP address is making the request. In the past request.ip always included the original client IP address no matter how many reverse proxies or load balancers are present in front of the parse-server itself. Recently, since one of the alpha releases, request.ip returns the IP of the machine on which the parse server instance is running.

Steps to reproduce

Parse.Cloud.afterLogin(async request => {
  console.log(request.ip);
});

Actual Outcome

Since recent alpha releases request.ip returns IP address of the machine where parse server is running, instead of the client's IP.

Expected Outcome

I assume for ease of use, I'd be interested in request.ip giving me back the original IP that made the request. I can examine the complete request path by looking at request.headers["x-forwarded-for"]. But request.ip should be IMHO the original client.

Workaround

I can for the moment workaround the issue by looking at the first item in request.headers["x-forwarded-for"].

const forwarded = request.headers["x-forwarded-for"] || request.ip;
const ip = forwarded.split(",", 1)[0];

Environment

Server

  • Parse Server version: alpha
  • Operating system: Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:questionSupport or code-level question

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions