first commit

This commit is contained in:
2023-08-08 12:28:43 +02:00
commit da86ee374a
29 changed files with 4883 additions and 0 deletions

41
models/accounts.go Normal file
View File

@@ -0,0 +1,41 @@
package models
import (
"github.com/golang-jwt/jwt/v4"
"time"
)
type Account struct {
ID string `json:"id"`
FirstName string `json:"firstName,omitempty"`
LastName string `json:"lastName,omitempty"`
VerifiedIdentity *bool `json:"verifiedIdentity,omitempty"`
BirthDate string `json:"birthdate,omitempty"`
LocalCredentials
}
type LocalCredentials struct {
Email string
EmailVerified bool
EmailValidationCode string
PhoneNumber string
PhoneNumberVerified bool
PhoneNumberValidationCode string
}
type UserClaims struct {
jwt.RegisteredClaims
}
func (account Account) CreateToken(ttl time.Duration, key string) (token string, err error) {
expires_at := jwt.NewNumericDate(time.Now().Add(ttl))
claims := UserClaims{
RegisteredClaims: jwt.RegisteredClaims{
Subject: account.Email,
ExpiresAt: expires_at,
},
}
t := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
return t.SignedString([]byte(key))
}