Guardian is a token based authentication library for use with Elixir applications. Guardian remains a functional system. It integrates with Plug but can be used outside of it. If you're implementing a TCP/UDP protocol directly or want to utilize your authentication via channels in Phoenix, Guardian can work for you. The core currency of authentication in Guardian is the token. By default JSON Web Tokens are supported out of the box but you can use any token that Has the concept of a key-value payload, is tamper-proof, can serialize to a String, or that has a supporting module that implements the Guardian.Token behavior. You can use Guardian tokens to authenticate web endpoints (Plug/Phoenix/X), channels/Sockets (Phoenix - optional), and any other system you can imagine. If you can attach an authentication token you can authenticate it.
Features
- An authentication library for use with Elixir applications
- API documentation is available
- Guardian also allows you to configure multiple token types/configurations in a single application
- Create with custom claims and options
- Decode tokens
- Guardian can handle tokens of any type that implements the Guardian.Token behaviour
- Guardian supports resolving configuration options at runtime