Files
lndhub.go/database/models/user.go
Viktor Patchev 2913dc652f Update user model
2022-01-05 15:57:54 +01:00

43 lines
824 B
Go

package models
import (
"os"
jwt "github.com/dgrijalva/jwt-go"
"github.com/jinzhu/gorm"
"golang.org/x/crypto/bcrypt"
)
// User : User Model
type User struct {
gorm.Model
Id int
Email string
Login string
Password string
RefreshToken string
AccessToken string
UpdatedAt int64
CreatedAt int64
}
var (
jwtKey = os.Getenv("JWT_KEY")
)
// HashPassword : Hash Password
func (u *User) HashPassword() {
bytes, _ := bcrypt.GenerateFromPassword([]byte(u.PasswordHash), bcrypt.DefaultCost)
u.PasswordHash = string(bytes)
}
// GenerateToken : Generate Token
func (u *User) GenerateToken() (string, error) {
token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
"username": u.Username,
})
tokenString, err := token.SignedString(jwtKey)
return tokenString, err
}