Backend structure / login with JWT

This commit is contained in:
Leons Aleksandrovs
2025-07-06 16:46:21 +03:00
parent 3166424426
commit 3003a961b6
18 changed files with 338 additions and 126 deletions
@@ -1,4 +1,4 @@
package utils
package hash
import "golang.org/x/crypto/bcrypt"
+30
View File
@@ -0,0 +1,30 @@
package jwt
import (
"backend/config"
"backend/models/user"
"time"
"github.com/golang-jwt/jwt"
)
func GenerateJWT(u *user.User) (string, error) {
// Generate JWT token
mySigningKey := []byte(config.Env["JWT_SECRET"])
token := jwt.New(jwt.SigningMethodHS256)
// Add claims (Values)
claims := token.Claims.(jwt.MapClaims)
claims["id"] = u.Id
claims["name"] = u.Name
claims["email"] = u.Email
claims["exp"] = time.Now().Add(time.Hour * 24 * 7).Unix() // Expire in 7 days
// Generate signed token
tokenString, err := token.SignedString(mySigningKey)
if err != nil {
return "", err
}
return tokenString, nil
}
@@ -1,4 +1,4 @@
package utils
package responses
import (
"github.com/gin-gonic/gin"