diff --git a/config/prod.secret.exs b/config/prod.secret.exs index 4e0446cc..09680e94 100644 --- a/config/prod.secret.exs +++ b/config/prod.secret.exs @@ -49,7 +49,7 @@ secret_key_base = """ config :philomena, PhilomenaWeb.Endpoint, - http: [:inet6, port: String.to_integer(System.get_env("PORT") || "4000")], + http: [ip: {127, 0, 0, 1}, port: String.to_integer(System.get_env("PORT") || "4000")], url: [host: System.get_env("APP_HOSTNAME"), scheme: "https", port: 443], secret_key_base: secret_key_base, server: true diff --git a/lib/philomena_web/plugs/totp_plug.ex b/lib/philomena_web/plugs/totp_plug.ex index 283419bf..b9ea20ef 100644 --- a/lib/philomena_web/plugs/totp_plug.ex +++ b/lib/philomena_web/plugs/totp_plug.ex @@ -53,6 +53,11 @@ defmodule PhilomenaWeb.TotpPlug do plug = Pow.Plug.get_plug(config) conn = Plug.Conn.put_private(conn, :pow_session_metadata, metadata) + conn = + conn + |> Plug.Conn.put_private(:pow_persistent_session_metadata, session_metadata: Keyword.take(metadata, [:valid_totp_at])) + |> PowPersistentSession.Plug.Cookie.create(user, config) + plug.do_create(conn, user, config) end end \ No newline at end of file diff --git a/mix.exs b/mix.exs index d4598d7c..b2b269fd 100644 --- a/mix.exs +++ b/mix.exs @@ -45,7 +45,7 @@ defmodule Philomena.MixProject do {:plug_cowboy, "~> 2.0"}, {:phoenix_slime, "~> 0.12.0"}, {:ecto_network, "~> 1.1"}, - {:pow, "~> 1.0.14"}, + {:pow, github: "danschultzer/pow", ref: "persistent-session-metadata", override: true}, {:bcrypt_elixir, "~> 2.0"}, {:pot, "~> 0.10.1"}, {:secure_compare, "~> 0.1.0"}, @@ -58,7 +58,7 @@ defmodule Philomena.MixProject do {:redix, "~> 0.10.2"}, {:bamboo, "~> 1.2"}, {:bamboo_smtp, "~> 1.7"}, - {:remote_ip, "~> 0.2.0"} + {:remote_ip, "~> 0.2.0"}, ] end diff --git a/mix.lock b/mix.lock index 4bc56f6a..10ea6b43 100644 --- a/mix.lock +++ b/mix.lock @@ -45,7 +45,7 @@ "plug_crypto": {:hex, :plug_crypto, "1.0.0", "18e49317d3fa343f24620ed22795ec29d4a5e602d52d1513ccea0b07d8ea7d4d", [:mix], [], "hexpm"}, "postgrex": {:hex, :postgrex, "0.15.1", "23ce3417de70f4c0e9e7419ad85bdabcc6860a6925fe2c6f3b1b5b1e8e47bf2f", [:mix], [{:connection, "~> 1.0", [hex: :connection, repo: "hexpm", optional: false]}, {:db_connection, "~> 2.1", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm"}, "pot": {:hex, :pot, "0.10.1", "af7dc220fd45478719b821fb4c1222975132516478483213507f95026298d8ab", [:rebar3], [], "hexpm"}, - "pow": {:hex, :pow, "1.0.14", "e7882e05c78dfd2f54c8ddcc98ac08ea317e235e667de1fabf8d0be5cee1bb2d", [:mix], [{:ecto, "~> 2.2 or ~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.3.0 or ~> 1.4.0", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, ">= 2.0.0 and <= 3.0.0", [hex: :phoenix_html, repo: "hexpm", optional: false]}, {:plug, ">= 1.5.0 and < 2.0.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm"}, + "pow": {:git, "https://github.com/danschultzer/pow.git", "d68cde93f2765d946bd5c8524d8bc501f2e851f6", [ref: "persistent-session-metadata"]}, "qrcode": {:hex, :qrcode, "0.1.5", "551271830515c150f34568345b060c625deb0e6691db2a01b0a6de3aafc93886", [:mix], [], "hexpm"}, "ranch": {:hex, :ranch, "1.7.1", "6b1fab51b49196860b733a49c07604465a47bdb78aa10c1c16a3d199f7f8c881", [:rebar3], [], "hexpm"}, "redix": {:hex, :redix, "0.10.2", "a9eabf47898aa878650df36194aeb63966d74f5bd69d9caa37babb32dbb93c5d", [:mix], [{:telemetry, "~> 0.4.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm"}, @@ -56,6 +56,6 @@ "secure_compare": {:hex, :secure_compare, "0.1.0", "01b3c93c8edb696e8a5b38397ed48e10958c8a5ec740606656445bcbec0aadb8", [:mix], [], "hexpm"}, "slime": {:hex, :slime, "1.2.0", "d46ede53c96b743dfdd23821268dc9b01f04ffea65d9d57c4e3d9200b162df02", [:mix], [{:neotoma, "~> 1.7", [hex: :neotoma, repo: "hexpm", optional: false]}], "hexpm"}, "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.5", "6eaf7ad16cb568bb01753dbbd7a95ff8b91c7979482b95f38443fe2c8852a79b", [:make, :mix, :rebar3], [], "hexpm"}, - "telemetry": {:hex, :telemetry, "0.4.0", "8339bee3fa8b91cb84d14c2935f8ecf399ccd87301ad6da6b71c09553834b2ab", [:rebar3], [], "hexpm"}, + "telemetry": {:hex, :telemetry, "0.4.1", "ae2718484892448a24470e6aa341bc847c3277bfb8d4e9289f7474d752c09c7f", [:rebar3], [], "hexpm"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.4.1", "d869e4c68901dd9531385bb0c8c40444ebf624e60b6962d95952775cac5e90cd", [:rebar3], [], "hexpm"}, }