Use subject claim for user id
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/golang-jwt/jwt/v5"
|
||||
@@ -18,7 +19,6 @@ var (
|
||||
|
||||
// Claims represents the JWT claims structure
|
||||
type Claims struct {
|
||||
UserID int64 `json:"user_id"`
|
||||
Email string `json:"email"`
|
||||
jwt.RegisteredClaims
|
||||
}
|
||||
@@ -38,9 +38,9 @@ func NewJWTManager(secretKey string, tokenDuration time.Duration) *JWTManager {
|
||||
// GenerateToken creates a new JWT token for a user
|
||||
func (m *JWTManager) GenerateToken(userID int64, email string) (string, error) {
|
||||
claims := Claims{
|
||||
UserID: userID,
|
||||
Email: email,
|
||||
RegisteredClaims: jwt.RegisteredClaims{
|
||||
Subject: strconv.FormatInt(userID, 10),
|
||||
ExpiresAt: jwt.NewNumericDate(time.Now().Add(m.tokenDuration)),
|
||||
IssuedAt: jwt.NewNumericDate(time.Now()),
|
||||
NotBefore: jwt.NewNumericDate(time.Now()),
|
||||
@@ -97,5 +97,9 @@ func (m *JWTManager) RefreshToken(tokenString string) (string, error) {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return m.GenerateToken(claims.UserID, claims.Email)
|
||||
userId, err := strconv.ParseInt(claims.Subject, 10, 64)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return m.GenerateToken(userId, claims.Email)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user