diff --git a/server/adminserver/db/db.go b/server/adminserver/db/db.go deleted file mode 100644 index 8ec26264..00000000 --- a/server/adminserver/db/db.go +++ /dev/null @@ -1,40 +0,0 @@ -package db - -import ( - "f5" - _ "github.com/go-sql-driver/mysql" - "github.com/jmoiron/sqlx" -) - -var db *sqlx.DB - -// go get github.com/jmoiron/sqlx - -func InitDB() { - var err error - dsn := "root:keji178@tcp(login-test.kingsome.cn:3306)/admindb_dev?charset=utf8mb4&parseTime=True&loc=Local" - db, err = sqlx.Connect("mysql", dsn) - if err != nil { - f5.GetSysLog().Info("Failed to connect to the database err:%v \n", err) - } - if err = db.Ping(); err != nil { - f5.GetSysLog().Info("Database ping failed:%v \n", err) - } - f5.GetSysLog().Info("Connected to the database\n") -} - -//func NewDB() *sqlx.DB { -// Db, err := sqlx.Open("mysql", "root:keji178@/gamedb2006_dev_1?parseTime=true") -// if err != nil { -// f5.GetSysLog().Info("cannot open mysql err:%v \n", err) -// } -// return Db -//} - -func GetDB() *sqlx.DB { - return db -} - -func Close() error { - return db.Close() -} diff --git a/server/adminserver/db/migration/000001_init_schema.down.sql b/server/adminserver/db/migration/000001_init_schema.down.sql deleted file mode 100644 index e69de29b..00000000 diff --git a/server/adminserver/db/migration/000001_init_schema.up.sql b/server/adminserver/db/migration/000001_init_schema.up.sql deleted file mode 100644 index e69de29b..00000000 diff --git a/server/adminserver/token/jwt_maker.go b/server/adminserver/token/jwt_maker.go deleted file mode 100644 index 3001f584..00000000 --- a/server/adminserver/token/jwt_maker.go +++ /dev/null @@ -1,54 +0,0 @@ -package token - -import ( - "fmt" - "github.com/golang-jwt/jwt/v5" - "time" -) - -const minSecretKeySize = 32 - -type JWTMaker struct { - secretKey string -} - -func NewJWTMaker(secretKey string) (Maker, error) { - if len(secretKey) < minSecretKeySize { - return nil, fmt.Errorf("invalid key size: must be at least %d characters", minSecretKeySize) - } - return &JWTMaker{secretKey}, nil -} - -func (maker *JWTMaker) CreateToken(username string, duration time.Duration) (string, *Payload, error) { - payload, err := NewPayload(username, duration) - if err != nil { - return "", payload, err - } - - jwtToken := jwt.NewWithClaims(jwt.SigningMethodHS256, payload) - token, err := jwtToken.SignedString([]byte(maker.secretKey)) - return token, payload, err -} - -// VerifyToken checks if the token is valid or not -func (maker *JWTMaker) VerifyToken(token string) (*Payload, error) { - keyFunc := func(token *jwt.Token) (interface{}, error) { - _, ok := token.Method.(*jwt.SigningMethodHMAC) - if !ok { - return nil, ErrInvalidToken - } - return []byte(maker.secretKey), nil - } - - jwtToken, err := jwt.ParseWithClaims(token, &Payload{}, keyFunc) - if err != nil { - return nil, ErrInvalidToken - } - - payload, ok := jwtToken.Claims.(*Payload) - if !ok { - return nil, ErrInvalidToken - } - - return payload, nil -} diff --git a/server/adminserver/token/maker.go b/server/adminserver/token/maker.go deleted file mode 100644 index 8546730b..00000000 --- a/server/adminserver/token/maker.go +++ /dev/null @@ -1,10 +0,0 @@ -package token - -import ( - "time" -) - -type Maker interface { - CreateToken(username string, duration time.Duration) (string, *Payload, error) - VerifyToken(token string) (*Payload, error) -} diff --git a/server/adminserver/token/paseto_maker.go b/server/adminserver/token/paseto_maker.go deleted file mode 100644 index 0f63d5e2..00000000 --- a/server/adminserver/token/paseto_maker.go +++ /dev/null @@ -1,57 +0,0 @@ -package token - -import ( - "fmt" - "time" - - "github.com/aead/chacha20poly1305" - "github.com/o1egl/paseto" -) - -// PasetoMaker is a PASETO token maker -type PasetoMaker struct { - paseto *paseto.V2 - symmetricKey []byte -} - -// NewPasetoMaker creates a new PasetoMaker -func NewPasetoMaker(symmetricKey string) (Maker, error) { - if len(symmetricKey) != chacha20poly1305.KeySize { - return nil, fmt.Errorf("invalid key size: must be exactly %d characters", chacha20poly1305.KeySize) - } - - maker := &PasetoMaker{ - paseto: paseto.NewV2(), - symmetricKey: []byte(symmetricKey), - } - - return maker, nil -} - -// CreateToken creates a new token for a specific username and duration -func (maker *PasetoMaker) CreateToken(username string, duration time.Duration) (string, *Payload, error) { - payload, err := NewPayload(username, duration) - if err != nil { - return "", payload, err - } - - token, err := maker.paseto.Encrypt(maker.symmetricKey, payload, nil) - return token, payload, err -} - -// VerifyToken checks if the token is valid or not -func (maker *PasetoMaker) VerifyToken(token string) (*Payload, error) { - payload := &Payload{} - - err := maker.paseto.Decrypt(token, maker.symmetricKey, payload, nil) - if err != nil { - return nil, ErrInvalidToken - } - - err = payload.Valid() - if err != nil { - return nil, err - } - - return payload, nil -} diff --git a/server/adminserver/token/payload.go b/server/adminserver/token/payload.go deleted file mode 100644 index 46dbea85..00000000 --- a/server/adminserver/token/payload.go +++ /dev/null @@ -1,75 +0,0 @@ -package token - -import ( - "errors" - "f5" - "github.com/golang-jwt/jwt/v5" - "time" -) - -var ( - ErrInvalidToken = errors.New("token is invalid") - ErrExpiredToken = errors.New("token has expired") -) - -type Payload struct { - ID int64 `json:"id"` - Username string `json:"username"` - IssuedAt time.Time `json:"issued_at"` - ExpiredAt time.Time `json:"expired_at"` -} - -//type Payload struct { -// ID int64 `json:"id"` -// Username string `json:"username"` -// IssuedAt int64 `json:"issued_at"` -// ExpiredAt int64 `json:"expired_at"` -//} - -func NewPayload(username string, duration time.Duration) (*Payload, error) { - tokenID := f5.GetApp().NewUuid() - payload := &Payload{ - ID: tokenID, - Username: username, - IssuedAt: time.Now(), - ExpiredAt: time.Now().Add(duration), - } - return payload, nil -} - -func (payload *Payload) Valid() error { - if time.Now().After(payload.ExpiredAt) { - return ErrExpiredToken - } - return nil -} - -func (p *Payload) GetExpirationTime() (*jwt.NumericDate, error) { - expirationTime := jwt.NewNumericDate(p.ExpiredAt) - return expirationTime, nil -} - -func (p *Payload) GetIssuedAt() (*jwt.NumericDate, error) { - issuedAt := jwt.NewNumericDate(p.IssuedAt) - return issuedAt, nil - //return p.IssuedAt -} - -func (p *Payload) GetNotBefore() (*jwt.NumericDate, error) { - now := jwt.NewNumericDate(time.Time{}) - return now, nil - //return time.Time{} // 默认返回零值,或根据需求设置合适的值 -} - -func (p *Payload) GetIssuer() (string, error) { - return "your_issuer", nil // 可根据需求返回合适的签发者(Issuer)信息 -} - -func (p *Payload) GetSubject() (string, error) { - return p.Username, nil // 使用用户名作为主题(Subject) -} - -func (p *Payload) GetAudience() (jwt.ClaimStrings, error) { - audience := "your_audience" // 根据需求设置合适的受众(Audience)信息 - return jwt.ClaimStrings{audience}, nil -}