added code for token issuance and verification

This commit is contained in:
2025-01-31 04:06:03 +09:00
parent b7992a0bb7
commit 8bee855aa8
8 changed files with 144 additions and 48 deletions

View File

@ -1,10 +1,11 @@
package hodu_test
import "crypto/rand"
import "crypto/rsa"
import "hodu"
import "testing"
func TestJwt(t *testing.T) {
var j hodu.JWT
var tok string
var err error
@ -18,9 +19,21 @@ func TestJwt(t *testing.T) {
jc.Abc = "def"
jc.Donkey = "kong"
jc.IssuedAt = 111
tok, err = j.Sign(&jc)
var key *rsa.PrivateKey
key, err = rsa.GenerateKey(rand.Reader, 2048)
if err != nil { t.Fatalf("keygen failure - %s", err.Error()) }
var j *hodu.JWT[JWTClaim]
j = hodu.NewJWT(key, &jc)
tok, err = j.SignRS512()
if err != nil { t.Fatalf("signing failure - %s", err.Error()) }
err = j.Verify(tok)
jc = JWTClaim{}
err = j.VerifyRS512(tok)
if err != nil { t.Fatalf("verification failure - %s", err.Error()) }
if jc.Abc != "def" { t.Fatal("decoding failure of Abc field") }
if jc.Donkey != "kong" { t.Fatal("decoding failure of Donkey field") }
if jc.IssuedAt != 111 { t.Fatal("decoding failure of Issued field") }
}