View Source Pow.Plug (Pow v1.0.39)

Plug helper functions.

Summary

Functions

Assign an authenticated user to the connection.

Authenticates a user.

Creates a changeset from the current authenticated user.

Call create/3 for the Pow plug set for the conn.

Creates a new user.

Get the current user assigned to the conn.

Get the current user assigned to the conn.

Call delete/2 for the Pow plug set for the conn.

Deletes the current authenticated user.

Fetch configuration from the private key in the connection.

Prepend namespace found in Plug Pow configuration to binary.

Put the provided config as a private key in the connection.

Signs a token for public consumption.

Updates the current authenticated user.

Decodes and verifies a token.

Functions

assign_current_user(conn, user, config)

@spec assign_current_user(Plug.Conn.t(), any(), Pow.Config.t()) :: Plug.Conn.t()

Assign an authenticated user to the connection.

This will assign the user to the conn. The key is by default :current_user, but it can be overridden with :current_user_assigns_key configuration option.

authenticate_user(conn, params)

@spec authenticate_user(Plug.Conn.t(), map()) :: {:ok | :error, Plug.Conn.t()}

Authenticates a user.

If successful, a new session will be created.

change_user(conn, params \\ %{})

@spec change_user(Plug.Conn.t(), map()) :: map()

Creates a changeset from the current authenticated user.

create(conn, user)

@spec create(Plug.Conn.t(), map()) :: Plug.Conn.t()

Call create/3 for the Pow plug set for the conn.

create(conn, user, config)

@spec create(Plug.Conn.t(), map(), Pow.Config.t()) :: Plug.Conn.t()

create_user(conn, params)

@spec create_user(Plug.Conn.t(), map()) ::
  {:ok, map(), Plug.Conn.t()} | {:error, map(), Plug.Conn.t()}

Creates a new user.

If successful, a new session will be created.

current_user(conn)

@spec current_user(Plug.Conn.t()) :: map() | nil

Get the current user assigned to the conn.

The config is fetched from the conn. See current_user/2 for more.

current_user(map, config)

@spec current_user(Plug.Conn.t(), Pow.Config.t()) :: map() | nil

Get the current user assigned to the conn.

This will fetch the user from the assigns map in the conn. The key is by default :current_user, but it can be overridden with :current_user_assigns_key configuration option.

delete(conn)

@spec delete(Plug.Conn.t()) :: Plug.Conn.t()

Call delete/2 for the Pow plug set for the conn.

delete(conn, config)

@spec delete(Plug.Conn.t(), Pow.Config.t()) :: Plug.Conn.t()

delete_user(conn)

@spec delete_user(Plug.Conn.t()) ::
  {:ok, map(), Plug.Conn.t()} | {:error, map(), Plug.Conn.t()}

Deletes the current authenticated user.

If successful, the user authentication will be cleared from the session.

fetch_config(map)

@spec fetch_config(Plug.Conn.t()) :: Pow.Config.t()

Fetch configuration from the private key in the connection.

It'll raise an error if configuration hasn't been set as a private key.

get_plug(config)

@spec get_plug(Pow.Config.t()) :: atom()

prepend_with_namespace(config, string)

@spec prepend_with_namespace(Pow.Config.t(), binary()) :: binary()

Prepend namespace found in Plug Pow configuration to binary.

Will prepend :otp_app if exists in configuration.

put_config(conn, config)

@spec put_config(Plug.Conn.t(), Pow.Config.t()) :: Plug.Conn.t()

Put the provided config as a private key in the connection.

sign_token(conn, salt, token, config \\ nil)

@spec sign_token(Plug.Conn.t(), binary(), binary(), Pow.Config.t() | nil) :: binary()

Signs a token for public consumption.

Used to prevent timing attacks with token lookup.

This uses Pow.Plug.MessageVerifier by default, but can be changed if the Pow configuration is set with :message_verifier. Pow.Plug.MessageVerifier can also be configured in this way if :message_verifier is set to {Pow.Plug.MessageVerifier, key_generator_opts: [length: 64]}

update_user(conn, params)

@spec update_user(Plug.Conn.t(), map()) ::
  {:ok, map(), Plug.Conn.t()} | {:error, map(), Plug.Conn.t()}

Updates the current authenticated user.

If successful, a new session will be created.

verify_token(conn, salt, token, config \\ nil)

@spec verify_token(Plug.Conn.t(), binary(), binary(), Pow.Config.t() | nil) ::
  {:ok, binary()} | :error

Decodes and verifies a token.

Used to prevent timing attacks with token lookup.

This uses Pow.Plug.MessageVerifier by default, but can be changed if the Pow configuration is set with :message_verifier. Pow.Plug.MessageVerifier can also be configured in this way if :message_verifier is set to {Pow.Plug.MessageVerifier, key_generator_opts: [length: 64]}