defmodule EzcontainerRailwayWeb.AnonSession do import Plug.Conn def init(default), do: default def call(conn, _opts) do case get_session(conn, :anon_id) do nil -> anon_id = generate_anon_id() conn |> put_session(:anon_id, anon_id) |> assign(:anon_id, anon_id) id -> conn |> assign(:anon_id, id) end end defp generate_anon_id() do :crypto.strong_rand_bytes(16) |> Base.encode64() |> binary_part(0, 16) end end