# pow-auth/pow

Robust, modular, and extendable user authentication system

Repository: https://github.com/pow-auth/pow
Canonical: https://ross.abutalabs.com/products/pow-auth-pow
Homepage: https://powauth.com
Language: Elixir
License: MIT
License Family: permissive
Topics: phoenix, authentication, authorization, user-management, elixir
Last push: 2025-01-28T22:25:29+00:00

## Health v2 (maintenance only)
Score: 24/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 3, release rhythm 8, longevity 100
- inputs: {"age_days": 3040, "days_push": 582, "days_rel": 599, "gap_med": null, "n_releases_24m": 1}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1668, forks 163 (observed 2026-08-28T04:05:19.765735+00:00)

## What it is
Pow is a robust, modular, and extendable authentication and user management library for Elixir, built for Phoenix and Plug-based applications. It provides out-of-the-box user registration, session-based authorization, and optional extensions like password reset, email confirmation, persistent sessions, and invitations.

## Use cases
- add user authentication to a Phoenix app
- implement user registration and login with sessions
- manage user accounts and roles in Elixir
- add password reset and email confirmation flows
- support API token authentication in a Plug-based app
- add multitenancy and user roles to a Phoenix application
- enable social login via OAuth providers with PowAssent

## When to choose
- you are building a Phoenix or Plug-based Elixir app that needs authentication
- you want a batteries-included, production-proven auth solution with strong defaults
- you need a modular system where each part can be customized or replaced
- you want extensions like password reset, email confirmation, or invitations out of the box

## When to avoid
- you are not using Elixir, Phoenix, or Plug
- you need a fully managed hosted authentication service
- you require OAuth multi-provider sign-in without adding the separate PowAssent library
- your app has no user accounts or authentication requirements

## Facets
- artifact type: library
- maturity: stable
- function: auth, authorization, middleware
- domain: web-development, backend, security, developer-tools
- platform: elixir
- tags: phoenix, user-management, plug, session-based-auth, api-tokens, multitenancy, user-roles, i18n, web-server

## Member repositories
- pow-auth/pow (main) score 24

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:19.765735+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:42:50.824875+00:00, confidence not recorded.
  - readme: https://github.com/pow-auth/pow (fetched 2026-08-28T04:05:19.765735+00:00, sha 77a6358d55ec)
  - homepage: https://powauth.com (fetched 2026-08-29T11:16:07.422939+00:00, sha a24edb095a3f)
- Data as of 2026-08-30T08:39:29.467469+00:00.
