continued auth system

This commit is contained in:
zomo
2025-10-31 12:08:10 -05:00
parent 8355ca374b
commit 5f35823033
8 changed files with 186 additions and 30 deletions

64
db/db_cold/authTokens.go Normal file
View File

@@ -0,0 +1,64 @@
package db_cold
import (
"time"
"gorm.io/gorm"
)
type UserAuth struct {
gorm.Model
UserID string `gorm:"primarykey"`
UserName string
UserLogin string
UserEmail string
AccessToken string
RefreshToken string
TokenExpires time.Time
}
func (db *DBColdConn) initUserAuth() {
db.Gorm.AutoMigrate(&UserAuth{})
}
func (db *DBColdConn) GetAllUserAuth() ([]UserAuth, error) {
var userAuths []UserAuth
res := db.Gorm.Find(&userAuths)
if res.Error != nil {
return nil, res.Error
}
return userAuths, nil
}
// add or update user auth, based on ID
func (db *DBColdConn) UpdateUserAuth(userID, userName, userLogin, accessToken, refreshToken string, tokenExpires time.Time) error {
userAuth := UserAuth{
UserID: userID,
UserName: userName,
UserLogin: userLogin,
AccessToken: accessToken,
RefreshToken: refreshToken,
TokenExpires: tokenExpires,
}
rows, err := gorm.G[UserAuth](db.Gorm).Where("id = ?", userID).Find(db.Ctx)
if err != nil {
return err
}
if len(rows) > 0 {
// update
_, err := gorm.G[UserAuth](db.Gorm).Where("id = ?", userID).Updates(db.Ctx, userAuth)
if err != nil {
return err
}
} else {
// add
err := gorm.G[UserAuth](db.Gorm).Create(db.Ctx, &userAuth)
if err != nil {
return err
}
}
return nil
}