An Erlang library for implementing the server side of OAuth 2.0 authorization.
OAuth2 is an Erlang implementation of the OAuth 2.0 authorization framework, specifically for building the server-side component. It handles the core OAuth 2.0 flows, token generation, and client management, enabling developers to add secure authorization to their Erlang-based APIs and services. The library abstracts the complexity of the RFC 6749 specification into a modular, backend-agnostic system.
Erlang and Elixir developers who need to implement OAuth 2.0 authorization servers for their web services, APIs, or microservices.
Developers choose this library because it provides a spec-compliant, customizable foundation for OAuth 2.0 server implementation without forcing a specific persistence or authentication strategy, reducing boilerplate and potential security pitfalls.
Erlang Oauth2 implementation
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements OAuth 2.0 flows as per RFC 6749, ensuring secure and interoperable authorization handling without reinventing the protocol.
Provides the `oauth2_backend` behavior for developers to implement their own authentication, persistence, and user management, offering flexibility for diverse use cases.
Supports access and refresh tokens with configurable expiry times per flow, allowing fine-grained control over token lifecycle as shown in the app.config examples.
Includes `oauth2_priv_set` for scope validation, modeled after Solaris RBAC, enabling granular access control with subset checking as demonstrated in the README.
Requires developers to fully implement the `oauth2_backend` behavior for all authentication and persistence logic, which adds significant upfront development effort.
The library is strictly server-side; for OAuth 2.0 client functionality, you must use a separate project like `oauth2_client`, fragmenting the solution.
The current version is labeled as alpha (0.7.x), indicating potential breaking changes and lack of stability for production deployment without risk.
Primary documentation is limited to the README, with reliance on external examples and related projects, which may not cover advanced use cases or troubleshooting.