22 lines
545 B
1
defmodule BlogWeb.Plugs.EnsureUserId do
2
@moduledoc """
3
A plug that ensures a user_id is present in the session.
4
5
This is used to identify users in the chat functionality.
6
"""
7
8
import Plug.Conn
9
10
def init(opts), do: opts
11
12
def call(conn, _opts) do
13
if get_session(conn, "user_id") do
14
# User ID already exists in session
15
conn
16
else
17
# Generate a new user ID and put it in the session
18
user_id = System.unique_integer([:positive]) |> to_string()
19
put_session(conn, "user_id", user_id)
20
end
21
end
22
end
23