/* * This file is part of sdbapi * Copyright (C) 2022 Jonni Liljamo * * Licensed under GPL-3.0-only. * See LICENSE for licensing information. */ package models import ( "golang.org/x/crypto/bcrypt" "gorm.io/gorm" ) type User struct { gorm.Model ID string `json:"id" gorm:"primarykey;type:uuid;default:gen_random_uuid()"` Username string `json:"username" gorm:"unique"` Email string `json:"email" gorm:"unique"` Password string `json:"password"` } // hash a users password func (user *User) HashPwd(password string) error { hash, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost) if err != nil { return err } user.Password = string(hash) return nil } func (user *User) VerifyPwd(password string) error { err := bcrypt.CompareHashAndPassword([]byte(user.Password), []byte(password)) if err != nil { return err } return nil }