Pow gives you out-of-the-box authentication and user management for your Phoenix or Plug based app. Functionally built so it's fully customizable.
Strong security is a core tenet of Pow's philosophy, which is why Pow by default uses short lived sessions. If your app requires stateless tokens, the authorization layer can be replaced in minutes.
Pow has been used in countless production apps and is a "batteries included" library for production. The cache backend store used for session storage can be replaced with any key-value store of your choice.
The built-in Mnesia cache module works both for clusters and single machine persistence, that can auto-connect to the cluster on startup and self-heal after netsplit.
Pow is extremely modular and fully customizable. As your platform scales, each moving part can be modified or replaced ad-hoc. Several extensions are included in Pow so you with no effort can add secure features to your app like these:
PowAssent adds multi-provider support so your app can permit sign in with Github, Twitter or any other external profiles.