Safe, simple and fast JSON Web Tokens for Go
JSON Web Token for Go RFC 7519, also see jwt.io for more.
The latest version is v5.
There are many JWT libraries, but many of them are hard to use (unclear or fixed API), not optimal (unneeded allocations + strange API). This library addresses all these issues. It's simple to read, to use, memory and CPU conservative.
See GUIDE.md for more details.
Go version 1.17+
go get github.com/cristalhq/jwt/v5Build new token:
// create a Signer (HMAC in this example)
key := []byte(`secret`)
signer, err := jwt.NewSignerHS(jwt.HS256, key)
checkErr(err)
// create claims (you can create your own, see: ExampleBuilder_withUserClaims)
claims := &jwt.RegisteredClaims{
Audience: []string{"admin"},
ID: "random-unique-string",
}
// create a Builder
builder := jwt.NewBuilder(signer)
// and build a Token
token, err := builder.Build(claims)
checkErr(err)
// here is token as a string
var _ string = token.String()Parse and verify token:
…Also see examples: example_test.go.
See these docs.
No open issues yet, or sync has not completed.