allow to upload images

but also files, hmmmm
This commit is contained in:
2026-03-16 21:45:39 +03:00
parent 3a8bc6df2d
commit d8fc6e481f
18 changed files with 437 additions and 1 deletions

48
auth/jwt.go Normal file
View File

@@ -0,0 +1,48 @@
package auth
import (
"fmt"
"os"
"time"
"github.com/golang-jwt/jwt/v5"
)
var secretKey = os.Getenv("JWT_SECRET_KEY")
type UserClaims struct {
jwt.RegisteredClaims
UserID int64
}
func GenerateUserToken(userId int64, expiryTime time.Time) (string, error) {
now := time.Now()
claims := UserClaims{
UserID: userId,
RegisteredClaims: jwt.RegisteredClaims{
IssuedAt: jwt.NewNumericDate(now),
ExpiresAt: jwt.NewNumericDate(expiryTime),
},
}
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
return token.SignedString([]byte(secretKey))
}
func ValidateUserToken(token string) (int64, error) {
claims := &UserClaims{}
parsed, err := jwt.ParseWithClaims(token, claims, func(t *jwt.Token) (any, error) {
return []byte(secretKey), nil
})
if err != nil {
return -1, fmt.Errorf("failed to parse token: %v", err)
}
if !parsed.Valid {
return -1, fmt.Errorf("invalid token")
}
return claims.UserID, nil
}