package
0.0.0-20241028021611-85c26eb2e2be
Repository: https://github.com/seedlings-calm/prst.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/seedlings-calm/prst/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/seedlings-calm/prst/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.
GenerateToken generate token by uid and name.
Init initialize jwt.
ParseCustomToken parse token.
ParseToken parse token.
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 my custom claims.
CustomClaims custom fields claims.

# Type aliases

KV map type.
Option set the jwt options.