go-mongo/services/auth/create_token.go
2025-05-31 18:38:18 +03:00

30 lines
547 B
Go

package authService
import (
"time"
"github.com/golang-jwt/jwt/v4"
)
func createToken(sub, secret, expiry string, payload interface{}) (*string, error) {
duration, err := time.ParseDuration(expiry)
if err != nil {
return nil, err
}
token := jwt.New(jwt.SigningMethodHS256)
claims := token.Claims.(jwt.MapClaims)
claims["sub"] = sub
claims["exp"] = time.Now().Add(duration).Unix()
claims["data"] = payload
signedToken, err := token.SignedString([]byte(secret))
if err != nil {
return nil, err
}
return &signedToken, nil
}