package main import ( "time" "github.com/golang-jwt/jwt/v5" "github.com/google/uuid" ) type JwtType string const ( Access JwtType = "access" Refresh JwtType = "refresh" ) type JwtClaims struct { UserID string Type JwtType Expire time.Time } func createToken(claims JwtClaims) *jwt.Token { return jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ "UserID": claims.UserID, "Type": claims.Type, "Expire": claims.Expire, }) } func CreateRefreshToken(userId uuid.UUID) string { token := createToken(JwtClaims{ UserID: userId.String(), Type: Refresh, Expire: time.Now().Add(time.Hour * 24 * 7), }) // TODO: bruh what is this tokenString, err := token.SignedString([]byte("very secret")) if err != nil { panic(err) } return tokenString } func CreateAccessToken(userId uuid.UUID) string { token := createToken(JwtClaims{ UserID: userId.String(), Type: Access, Expire: time.Now().Add(time.Hour), }) // TODO: bruh what is this tokenString, err := token.SignedString([]byte("very secret")) if err != nil { panic(err) } return tokenString }