tile38/vendor/github.com/nats-io/jwt
tidwall 3ed048242e Various updates
- Updated all dependencies
- Updated geoindex Box api
2021-02-03 14:30:55 -07:00
..
.gitignore Various updates 2021-02-03 14:30:55 -07:00
.travis.yml Various updates 2021-02-03 14:30:55 -07:00
LICENSE Various updates 2021-02-03 14:30:55 -07:00
Makefile Various updates 2021-02-03 14:30:55 -07:00
README.md Various updates 2021-02-03 14:30:55 -07:00
ReleaseNotes.md Various updates 2021-02-03 14:30:55 -07:00
account_claims.go Various updates 2021-02-03 14:30:55 -07:00
activation_claims.go Various updates 2021-02-03 14:30:55 -07:00
claims.go Various updates 2021-02-03 14:30:55 -07:00
cluster_claims.go Various updates 2021-02-03 14:30:55 -07:00
creds_utils.go Various updates 2021-02-03 14:30:55 -07:00
exports.go Various updates 2021-02-03 14:30:55 -07:00
genericlaims.go Various updates 2021-02-03 14:30:55 -07:00
go.mod Various updates 2021-02-03 14:30:55 -07:00
go.sum Various updates 2021-02-03 14:30:55 -07:00
header.go Various updates 2021-02-03 14:30:55 -07:00
imports.go Various updates 2021-02-03 14:30:55 -07:00
operator_claims.go Various updates 2021-02-03 14:30:55 -07:00
revocation_list.go Various updates 2021-02-03 14:30:55 -07:00
server_claims.go Various updates 2021-02-03 14:30:55 -07:00
types.go Various updates 2021-02-03 14:30:55 -07:00
user_claims.go Various updates 2021-02-03 14:30:55 -07:00
validation.go Various updates 2021-02-03 14:30:55 -07:00

README.md

JWT

A JWT implementation that uses nkeys to digitally sign JWT tokens. Nkeys use Ed25519 to provide authentication of JWT claims.

License Apache 2 ReportCard Build Status GoDoc Coverage Status

// Need a private key to sign the claim, nkeys makes it easy to create
kp, err := nkeys.CreateAccount()
if err != nil {
    t.Fatal("unable to create account key", err)
}

pk, err := kp.PublicKey()
if err != nil {
	t.Fatal("error getting public key", err)
}

// create a new claim
claims := NewAccountClaims(pk)
claims.Expires = time.Now().Add(time.Duration(time.Hour)).Unix()


// add details by modifying claims.Account

// serialize the claim to a JWT token
token, err := claims.Encode(kp)
if err != nil {
    t.Fatal("error encoding token", err)
}

// on the receiving side, decode the token
c, err := DecodeAccountClaims(token)
if err != nil {
    t.Fatal(err)
}

// if the token was decoded, it means that it
// validated and it wasn't tampered. the remaining and
// required test is to insure the issuer is trusted
pk, err := kp.PublicKey()
if err != nil {
    t.Fatalf("unable to read public key: %v", err)
}

if c.Issuer != pk {
    t.Fatalf("the public key is not trusted")
}