Current section

Files

Jump to
auth_n lib session_storage stateless_cookie.ex
Raw

lib/session_storage/stateless_cookie.ex

defmodule AuthN.SessionStorage.StatelessCookie do
@moduledoc ~S"""
Module for storing sessions into stateless cookies.
This is the library's default storage mechanism for storing sessions.
"""
@behaviour AuthN.SessionStorage
import Plug.Conn
@type conn :: %Plug.Conn{}
@spec get_user_id(conn) :: term | nil
def get_user_id(conn), do: get_session(conn, :current_user_id)
@spec put_user_id(conn, term) :: conn
def put_user_id(conn, user_id) do
put_session(conn, :current_user_id, user_id)
|> configure_session(renew: true)
end
@spec delete_user_id(conn) :: conn
def delete_user_id(conn) do
delete_session(conn, :current_user_id)
|> configure_session(drop: true)
end
end