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.
Besides that, go-ucan
also includes:
- a simplified DID and did-key implementation
- a token container with CBOR and CAR format, to package and carry tokens together
- 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.