An Elixir library for building OAuth 2.0 client applications with support for multiple authorization strategies.
OAuth2 is an Elixir client library for implementing OAuth 2.0 authorization flows in applications. It provides a clean, extensible interface for integrating with OAuth 2.0 providers, handling token management, and making authenticated API requests.
Elixir developers building applications that need to authenticate with external OAuth 2.0 providers like GitHub, Google, or custom authorization servers.
Developers choose OAuth2 for its modular design, adherence to Elixir conventions, and built-in support for multiple grant types without imposing rigid patterns, making it straightforward to add OAuth 2.0 client capabilities.
An Elixir OAuth 2.0 Client Library
Supports Authorization Code, Password, and Client Credentials flows out of the box, covering common use cases for web and machine-to-machine authentication as highlighted in the README.
Allows configurable serializers for different MIME types like JSON and XML, enabling easy integration with various APIs through modules that implement encode!/1 and decode!/1.
Built on Tesla with configurable adapters and middleware, providing control over HTTP behavior and compatibility with different backends, as shown in the configuration examples.
Enables developers to implement provider-specific strategies, such as for GitHub, by following a straightforward callback module pattern demonstrated in the README.
Only includes three OAuth 2.0 grant types; projects requiring implicit grant or other flows must implement custom strategies from scratch, adding development overhead.
Requires explicit configuration of Tesla adapters and dependencies like Hackney, adding complexity and potential version conflicts, as noted in the installation and setup sections.
While it handles token retrieval and refresh, developers must manage token storage and persistence across application restarts themselves, which isn't automated by the library.
Elixir Authentication
An Elixir Authentication System for Plug-based Web Applications
Robust, modular, and extendable user authentication system
Coherence is a full featured, configurable authentication system for Phoenix
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.