2023-06-18 13:03:41 +01:00
|
|
|
package mjwt
|
|
|
|
|
|
|
|
import (
|
2023-10-25 17:37:55 +01:00
|
|
|
"crypto/rsa"
|
2023-06-18 13:03:41 +01:00
|
|
|
"github.com/golang-jwt/jwt/v4"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
// Signer is used to generate MJWT tokens.
|
|
|
|
// Signer can also be used as a Verifier.
|
|
|
|
type Signer interface {
|
|
|
|
Verifier
|
2023-06-20 00:32:16 +01:00
|
|
|
GenerateJwt(sub, id string, aud jwt.ClaimStrings, dur time.Duration, claims Claims) (string, error)
|
2023-06-18 13:03:41 +01:00
|
|
|
SignJwt(claims jwt.Claims) (string, error)
|
|
|
|
Issuer() string
|
2023-10-25 17:37:55 +01:00
|
|
|
PrivateKey() *rsa.PrivateKey
|
2023-06-18 13:03:41 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
// Verifier is used to verify the validity MJWT tokens and extract the claim values.
|
|
|
|
type Verifier interface {
|
|
|
|
VerifyJwt(token string, claims baseTypeClaim) (*jwt.Token, error)
|
2023-10-25 17:37:55 +01:00
|
|
|
PublicKey() *rsa.PublicKey
|
2023-06-18 13:03:41 +01:00
|
|
|
}
|