From 340bbe18824f35594ecd2d3636a90459223da335 Mon Sep 17 00:00:00 2001 From: Sipachev Igor Date: Fri, 14 Feb 2025 23:55:56 +0700 Subject: [PATCH] feat(jwt): clean trash and improve logic --- jwt.go | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/jwt.go b/jwt.go index 88be516..928f9b8 100644 --- a/jwt.go +++ b/jwt.go @@ -12,29 +12,24 @@ import ( "time" ) -type RefreshTokenClaims struct { - JWT -} - -func CreateRefreshTokenByAccess(accessClaims JWT, ttl time.Duration) RefreshTokenClaims { - return RefreshTokenClaims{ - JWT: JWT{ - Type: "refresh", - Ttl: ttl, - SessionId: accessClaims.SessionId, - RegisteredClaims: jwt.RegisteredClaims{ - ID: accessClaims.ID, - }, +func CreateRefreshTokenByAccess(accessClaims JWT, ttl time.Duration) JWT { + return JWT{ + Type: "refresh", + RegisteredClaims: jwt.RegisteredClaims{ + ID: accessClaims.ID, + ExpiresAt: jwt.NewNumericDate(time.Now().Add(ttl)), + IssuedAt: jwt.NewNumericDate(time.Now()), + NotBefore: accessClaims.ExpiresAt, }, } } -func ParseRefreshToken(token string, publicKey *rsa.PublicKey) (*RefreshTokenClaims, error) { - refreshDecodedClaims, err := Decode(token, &RefreshTokenClaims{}, publicKey) +func ParseRefreshToken(token string, publicKey *rsa.PublicKey) (*JWT, error) { + refreshDecodedClaims, err := Decode(token, &JWT{}, publicKey) if err != nil { return nil, err } - refreshTokenClaims, ok := refreshDecodedClaims.(*RefreshTokenClaims) + refreshTokenClaims, ok := refreshDecodedClaims.(*JWT) if !ok { return nil, fmt.Errorf("invalid refresh token claims") } @@ -42,15 +37,13 @@ func ParseRefreshToken(token string, publicKey *rsa.PublicKey) (*RefreshTokenCla } type JWT struct { - Type string `json:"t"` - Ttl time.Duration `json:"td"` - SessionId string `json:"si,omitempty"` - AuthorizationInfo string `json:"ai,omitempty"` + Type string `json:"t"` + SessionId string `json:"si,omitempty"` + AuthorizationInfo string `json:"ai,omitempty"` jwt.RegisteredClaims } func (j *JWT) WithTtl(ttl time.Duration) *JWT { - j.Ttl = ttl j.ExpiresAt = jwt.NewNumericDate(time.Now().Add(ttl)) j.IssuedAt = jwt.NewNumericDate(time.Now()) j.NotBefore = jwt.NewNumericDate(time.Now())