mirror of
https://github.com/getAlby/lndhub.go.git
synced 2026-01-17 20:05:32 +01:00
43 lines
824 B
Go
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
|
|
}
|