Go Implementation
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.
Resources
Section titled “Resources”Specifications
Section titled “Specifications”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)
Status
Section titled “Status”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, see SPEC
- support for encrypted values in token’s metadata
Getting Help
Section titled “Getting Help”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.
UCAN Gopher
Section titled “UCAN Gopher”Artwork by Bruno Monts. Thank you Renee French for creating the Go Gopher
License
Section titled “License”This project is licensed under the double license Apache 2.0 + MIT.