fixed transaction issues

This commit is contained in:
2026-01-01 22:44:39 +11:00
parent c4574e32c7
commit 05aad5f11b
5 changed files with 57 additions and 69 deletions

View File

@@ -1,7 +1,6 @@
package jwt
import (
"context"
"database/sql"
"github.com/google/uuid"
@@ -11,8 +10,8 @@ type Token interface {
GetJTI() uuid.UUID
GetEXP() int64
GetScope() string
getDB() *sql.DB
Revoke(context.Context) error
Revoke(*sql.Tx) error
CheckNotRevoked(*sql.Tx) (bool, error)
}
// Access token
@@ -25,7 +24,7 @@ type AccessToken struct {
JTI uuid.UUID // UUID-4 used for identifying blacklisted tokens
Fresh int64 // Time freshness expiring at
Scope string // Should be "access"
db *sql.DB
gen *TokenGenerator
}
// Refresh token
@@ -37,7 +36,7 @@ type RefreshToken struct {
SUB int // Subject (user) ID
JTI uuid.UUID // UUID-4 used for identifying blacklisted tokens
Scope string // Should be "refresh"
db *sql.DB
gen *TokenGenerator
}
func (a AccessToken) GetJTI() uuid.UUID {
@@ -58,21 +57,15 @@ func (a AccessToken) GetScope() string {
func (r RefreshToken) GetScope() string {
return r.Scope
}
func (a AccessToken) getDB() *sql.DB {
return a.db
func (a AccessToken) Revoke(tx *sql.Tx) error {
return a.gen.revoke(tx, a)
}
func (r RefreshToken) getDB() *sql.DB {
return r.db
func (r RefreshToken) Revoke(tx *sql.Tx) error {
return r.gen.revoke(tx, r)
}
func (a AccessToken) Revoke(ctx context.Context) error {
return revoke(ctx, a)
func (a AccessToken) CheckNotRevoked(tx *sql.Tx) (bool, error) {
return a.gen.checkNotRevoked(tx, a)
}
func (r RefreshToken) Revoke(ctx context.Context) error {
return revoke(ctx, r)
}
func (a AccessToken) CheckNotRevoked(ctx context.Context) (bool, error) {
return checkNotRevoked(ctx, a)
}
func (r RefreshToken) CheckNotRevoked(ctx context.Context) (bool, error) {
return checkNotRevoked(ctx, r)
func (r RefreshToken) CheckNotRevoked(tx *sql.Tx) (bool, error) {
return r.gen.checkNotRevoked(tx, r)
}