continued auth system
This commit is contained in:
64
db/db_cold/authTokens.go
Normal file
64
db/db_cold/authTokens.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user