package
1.12.6
Repository: https://github.com/go-dev-frame/sponge.git
Documentation: pkg.go.dev

# README

jwt

Generate and parse token based on jwt library.


Example of use

Example 1: common fields jwt

    import "github.com/go-dev-frame/sponge/pkg/jwt"

	jwt.Init(
		// jwt.WithSigningKey("123456"),   // key
		// jwt.WithExpire(time.Hour), // expiry time
		// jwt.WithSigningMethod(jwt.HS512), // encryption method, default is HS256, can be set to HS384, HS512
	)

	uid := "123"
	name := "admin"

	// generate token
	token, err := jwt.GenerateToken(uid, name)
	// handle err

	// parse token
	claims, err := jwt.ParseToken(token)
	// handle err

	// verify
	if claims.Uid != uid || claims.Name != name {
		print("verify failed")
	    return
	}

Example 2: custom fields jwt

    import "github.com/go-dev-frame/sponge/pkg/jwt"

	jwt.Init(
		// jwt.WithSigningKey("123456"),   // key
		// jwt.WithExpire(time.Hour), // expiry time
		// jwt.WithSigningMethod(jwt.HS512), // encryption method, default is HS256, can be set to HS384, HS512
	)

	fields := jwt.KV{"id": 123, "foo": "bar"}

	// generate token
	token, err := jwt.GenerateCustomToken(fields)
	// handle err

	// parse token
	claims, err := jwt.ParseCustomToken(token)
	// handle err

	// verify
	id, isExist1 := claims.Get("id")
	foo, isExist2 := claims.Get("foo")
	if !isExist1 || !isExist2 || int(id.(float64)) != fields["id"].(int) || foo.(string) != fields["foo"].(string) {
	    print("verify failed")
	    return
	}

# Functions

GenerateCustomToken generate token by custom fields, use CustomClaims.
GenerateToken generate token by uid and name, use universal Claims.
Init initialize jwt.
ParseCustomToken parse token, return CustomClaims.
ParseToken parse token, return universal Claims.
RefreshCustomToken refresh custom token.
RefreshToken refresh token.
WithExpire set expire value.
WithIssuer set issuer value.
WithSigningKey set signing key value.
WithSigningMethod set signing method value.

# Variables

ErrTokenExpired expired.
HS256 Method.
HS384 Method.
HS512 Method.

# Structs

Claims standard claims, include uid, name, and RegisteredClaims.
CustomClaims custom fields claims.

# Type aliases

KV map type.
Option set the jwt options.