This is a go library to help the next generation of web and decentralized applications make use of UCANs in their authorization flows.
User Controlled Authorization Networks (UCANs) are a way of doing authorization where users are fully in control. OAuth is designed for a centralized world, UCAN is the distributed user controlled version.
The UCAN specification is separated in multiple sub-spec:
Not implemented yet:
- Decentralizing Auth, and UCAN Too - Brooklyn Zelenka (2023)
- What's New in UCAN 1.0 - Brooklyn Zelenka (2024)
go-ucan currently support the required parts of the UCAN specification: the main specification, delegation and invocation. It leverages the sibling project go-did-it for easy and extensible DID support.
Besides that, go-ucan also includes:
- support for encrypted values in token's metadata
For usage questions, usecases, or issues reach out to us in our go-ucan
Discord channel.
We would be happy to try to answer your question or try opening a new issue on Github.
Artwork by Bruno Monts. Thank you Renee French for creating the Go Gopher
This project is licensed under the double license Apache 2.0 + MIT.