This repository has been archived on 2025-10-08. You can view files and clone it, but cannot push or open issues or pull requests.
miniauthold/vendor/github.com/cristalhq/jwt/v4
kekskurse 19dab2268e
Some checks failed
ci/woodpecker/push/test Pipeline failed
ci/woodpecker/push/playwright unknown status
ci/woodpecker/push/deplyoment unknown status
chore: login methode return user
2025-05-25 20:41:22 +02:00
..
algo.go chore: login methode return user 2025-05-25 20:41:22 +02:00
algo_eddsa.go chore: login methode return user 2025-05-25 20:41:22 +02:00
algo_es.go chore: login methode return user 2025-05-25 20:41:22 +02:00
algo_hs.go chore: login methode return user 2025-05-25 20:41:22 +02:00
algo_ps.go chore: login methode return user 2025-05-25 20:41:22 +02:00
algo_rs.go chore: login methode return user 2025-05-25 20:41:22 +02:00
audience.go chore: login methode return user 2025-05-25 20:41:22 +02:00
build.go chore: login methode return user 2025-05-25 20:41:22 +02:00
claims.go chore: login methode return user 2025-05-25 20:41:22 +02:00
doc.go chore: login methode return user 2025-05-25 20:41:22 +02:00
errors.go chore: login methode return user 2025-05-25 20:41:22 +02:00
fuzz.go chore: login methode return user 2025-05-25 20:41:22 +02:00
GUIDE.md chore: login methode return user 2025-05-25 20:41:22 +02:00
jwt.go chore: login methode return user 2025-05-25 20:41:22 +02:00
LICENSE chore: login methode return user 2025-05-25 20:41:22 +02:00
numeric_date.go chore: login methode return user 2025-05-25 20:41:22 +02:00
parse.go chore: login methode return user 2025-05-25 20:41:22 +02:00
README.md chore: login methode return user 2025-05-25 20:41:22 +02:00

jwt

build-img pkg-img reportcard-img coverage-img version-img

JSON Web Token for Go RFC 7519, also see jwt.io for more.

The latest version is v4.

Rationale

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.

Features

  • Simple API.
  • Clean and tested code.
  • Optimized for speed.
  • Concurrent-safe.
  • Dependency-free.
  • All well-known algorithms are supported
    • HMAC (HS)
    • RSA (RS)
    • RSA-PSS (PS)
    • ECDSA (ES)
    • EdDSA (EdDSA)
    • or your own!

See GUIDE.md for more details.

Install

Go version 1.17+

go get github.com/cristalhq/jwt/v4

Example

Build 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: Example_BuildUserClaims)
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:

// create a Verifier (HMAC in this example)
key := []byte(`secret`)
verifier, err := jwt.NewVerifierHS(jwt.HS256, key)
checkErr(err)

// parse and verify a token
tokenBytes := token.Bytes()
newToken, err := jwt.Parse(tokenBytes, verifier)
checkErr(err)

// or just verify it's signature
err = verifier.Verify(newToken)
checkErr(err)

// get Registered claims
var newClaims jwt.RegisteredClaims
errClaims := json.Unmarshal(newToken.Claims(), &newClaims)
checkErr(errClaims)

// or parse only claims
errParseClaims := jwt.ParseClaims(tokenBytes, verifier, &newClaims)
checkErr(errParseClaims)

// verify claims as you wish
var _ bool = newClaims.IsForAudience("admin")
var _ bool = newClaims.IsValidAt(time.Now())

Also see examples: example_test.go.

Documentation

See these docs.

License

MIT License.