View Source Pow.Plug.Base behaviour (Pow v1.0.38)

This plug macro will set :pow_config as private, and attempt to fetch and assign a user in the connection if it has not already been assigned. The user will be assigned automatically in any of the operations.

Any writes to backend store or client should occur in :before_send callback as defined in Plug.Conn. To ensure that the callbacks are called in the order they were set, a register_before_send/2 function is used to set callbacks instead of Plug.Conn.register_before_send/2.

Configuration options

  • :credentials_cache_store - the credentials cache store. This value defaults to {Pow.Store.CredentialsCache, backend: Pow.Store.Backend.EtsCache}. The Pow.Store.Backend.EtsCache backend store can be changed with the :cache_store_backend option.

  • :cache_store_backend - the backend cache store. This value defaults to Pow.Store.Backend.EtsCache.

Example

defmodule MyAppWeb.Pow.CustomPlug do
  use Pow.Plug.Base

  @impl true
  def fetch(conn, _config) do
    user = fetch_user_from_cookie(conn)

    {conn, user}
  end

  @impl true
  def create(conn, user, _config) do
    conn = update_cookie(conn, user)

    {conn, user}
  end

  @impl true
  def delete(conn, _config) do
    delete_cookie(conn)
  end
end

Summary

Callbacks

Functions