This commit is contained in:
2026-02-11 17:46:22 +03:00
commit eacfacb13b
266 changed files with 51337 additions and 0 deletions

53
svc/auth/jwt.go Normal file
View File

@@ -0,0 +1,53 @@
package auth
import (
"errors"
"os"
"github.com/golang-jwt/jwt/v5"
)
// package auth
func jwtSecret() ([]byte, error) {
sec := os.Getenv("JWT_SECRET")
if len(sec) < 10 {
return nil, errors.New("JWT_SECRET environment boş veya çok kısa")
}
return []byte(sec), nil
}
// ✅ TEK VE DOĞRU TOKEN ÜRETİCİ
func GenerateToken(claims Claims, username string, change bool) (string, error) {
secret, err := jwtSecret()
if err != nil {
return "", err
}
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
return token.SignedString(secret)
}
func ValidateToken(tokenStr string) (*Claims, error) {
secret, err := jwtSecret()
if err != nil {
return nil, err
}
token, err := jwt.ParseWithClaims(
tokenStr,
&Claims{},
func(token *jwt.Token) (interface{}, error) {
return secret, nil
},
)
if err != nil {
return nil, err
}
claims, ok := token.Claims.(*Claims)
if !ok || !token.Valid {
return nil, errors.New("token geçersiz")
}
return claims, nil
}