<div align="center">
# `🧬 tame-oidc`
**`tame-oidc` is a small [OpenID Connect](https://openid.net/connect/) crate that follows the [sans-io](https://sans-io.readthedocs.io/) approach.**
[](http://embark.games)
[](https://discord.gg/dAuKfZS)
[](https://crates.io/crates/tame-oidc)
[](https://docs.rs/tame-oidc)
[](https://deps.rs/repo/github/EmbarkStudios/tame-oidc)
[](https://github.com/EmbarkStudios/tame-oidc/actions)
</div>
Supported RFCs:
- [RFC7636 Proof Key for Code Exchange by OAuth Public Clients](https://datatracker.ietf.org/doc/html/rfc7636#page-3)
## Why?
- You want to control how you actually make OIDC HTTP requests
## Why not?
- The only auth flow that is currently implemented are the flows we are using internally. Other flows can be added, but right now that is the only one we need.
- This crate requires more boilerplate to use.
## Usage
See example code in `examples/embark.rs`
## Examples
### [embark basic](examples/embark-basic)
Usage: `cargo run --example embark-basic`
A small example of using `tame-oidc` together with [reqwest](https://github.com/seanmonstar/reqwest) using
the basic auth flow.
### [embark pkce](examples/embark-pkce)
Usage: `cargo run --example embark-pkce`
A small example of using `tame-oidc` together with [reqwest](https://github.com/seanmonstar/reqwest) using the PKCE
auth flow.
## Contributing
[](CODE_OF_CONDUCT.md)
We welcome community contributions to this project.
Please read our [Contributor Guide](CONTRIBUTING.md) for more information on how to get started.
## License
Licensed under either of
- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or <http://www.apache.org/licenses/LICENSE-2.0>)
- MIT license ([LICENSE-MIT](LICENSE-MIT) or <http://opensource.org/licenses/MIT>)
at your option.
### Contribution
Unless you explicitly state otherwise, any contribution intentionally
submitted for inclusion in the work by you, as defined in the Apache-2.0
license, shall be dual licensed as above, without any additional terms or
conditions.