app: use x-forwarded-for header to get ips
This commit is contained in:
parent
414cba561b
commit
c1e39c9bf2
1 changed files with 10 additions and 1 deletions
|
@ -9,7 +9,16 @@ defmodule PrymnWeb.ServerController do
|
||||||
validating their registration token.
|
validating their registration token.
|
||||||
"""
|
"""
|
||||||
def register(conn, %{"token" => token}) do
|
def register(conn, %{"token" => token}) do
|
||||||
case Servers.register_server(token, conn.remote_ip) do
|
ip =
|
||||||
|
with [ip] <- Plug.Conn.get_req_header(conn, "x-forwarded-for"),
|
||||||
|
{:ok, ip} <- :inet.parse_address(to_charlist(ip)) do
|
||||||
|
ip
|
||||||
|
else
|
||||||
|
{:error, reason} -> raise "Could not parse ip address: #{inspect(reason)}"
|
||||||
|
[] -> conn.remote_ip
|
||||||
|
end
|
||||||
|
|
||||||
|
case Servers.register_server(token, ip) do
|
||||||
{:ok, _server} ->
|
{:ok, _server} ->
|
||||||
json(conn, %{"connected" => true})
|
json(conn, %{"connected" => true})
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue