Packages
guard
0.15.2
0.19.1
0.19.0
0.18.0
0.17.2
0.17.1
0.17.0
0.16.3
0.16.2
0.16.1
0.16.0
0.15.3
0.15.2
0.15.1
0.15.0
0.14.9
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.1
0.13.0
0.12.9
0.12.8
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.3
0.11.2
0.11.1
0.11.0
0.10.4
0.10.3
0.10.2
0.10.1
0.10.0
0.9.0
0.8.0
0.7.1
0.7.0
0.6.1
0.6.0
0.5.0
0.4.1
0.4.0
0.3.0
0.2.0
0.1.0
Useful package for dealing with user authentication and signup
Current section
Files
Jump to
Current section
Files
lib/guard/plug/audit_logger.ex
defmodule Guard.Plug.AuditLogger do
@moduledoc """
Attach metadata to Logger for audit logging
"""
require Logger
alias Guard.Authenticator
@behaviour Plug
def init(opts) do
Keyword.get(opts, :log, :info)
end
def call(conn, _level) do
remote_ip =
case Plug.Conn.get_req_header(conn, "x-forwarded-for") do
[forwarded | _rest] -> forwarded
_ -> Enum.join(Tuple.to_list(conn.remote_ip), ".")
end
Logger.metadata(remote_ip: remote_ip)
case Authenticator.current_user(conn) do
nil ->
conn
user ->
Logger.metadata(user_id: user.id)
conn
end
end
end