newm4n / simple-jwt

A very ready to use JWT library, based on sermodigital implementation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

simple-jwt

A very easy library for JWT. It uses SermoDigital/jose as foundation, Really simple, no bullsh*t.

Usage

go get github.com/newm4n/simple-jwt

and

import (
    simplejwt "github.com/newm4n/simple-jwt"
)

Create new Claim

simple := simplejwt.NewSimpleClaim().SetID("123").SetIssuer("issuer").
    SetSubject("subject").SetTokenType("access").
    AddAudience("one").AddAudience("two")

or

simple := simplejwt.NewSimpleClaim()
simple.SetID("123")
simple.SetIssuer("issuer")
simple.SetSubject("subject")
simple.SetTokenType("access")
simple.AddAudience("one")
simple.AddAudience("two")

Add expiry, not-before and issued-at

expire := time.Now().Add(5 * time.Minute)
issuedAt := time.Now()
notBefore := time.Now()
simple := simplejwt.NewSimpleClaim().SetID("123").SetIssuer("issuer").
    SetSubject("subject").SetTokenType("access").
    AddAudience("one").AddAudience("two").
    SetExpirationTime(expire).SetNotBefore(notBefore).SetIssuedAt(issuedAt)

Create a token

simple := simplejwt.NewSimpleClaim()
token, err := simplejwt.MakeToken("this is a secret key", simple)
if err != nil {
    panic(err.Error())   
}

Obtaining claims from a token

token := "eyJhbGciOiJIUzI1NiIsInR5c...XlshT-jqnTKj20cogT707_gWKWTUxwXcsk"
simple, err := simplejwt.GetClaims(token)

Validating a token

token := "eyJhbGciOiJIUzI1NiIsInR5c...XlshT-jqnTKj20cogT707_gWKWTUxwXcsk"
err = simplejwt.GetValidityError("this is a secret key", token)
if err != nil {
    // token invalid signature, expired or not yet valid
}

About

A very ready to use JWT library, based on sermodigital implementation

License:Apache License 2.0


Languages

Language:Go 100.0%