You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.6 KiB
67 lines
1.6 KiB
package auth |
|
|
|
import ( |
|
"fmt" |
|
"gofaster/internal/auth/migration" |
|
"gofaster/internal/auth/routes" |
|
"gofaster/internal/core" |
|
"gofaster/internal/shared/config" |
|
"gofaster/internal/shared/database" |
|
"gofaster/internal/shared/middleware" |
|
|
|
"github.com/gin-gonic/gin" |
|
"go.uber.org/zap" |
|
"gorm.io/gorm" |
|
) |
|
|
|
type AuthModule struct { |
|
logger *zap.Logger |
|
db *gorm.DB |
|
config *config.Config |
|
} |
|
|
|
func init() { |
|
core.RegisterModuleType(&AuthModule{}) |
|
} |
|
|
|
func (m *AuthModule) Name() string { |
|
return "auth" |
|
} |
|
|
|
func (m *AuthModule) Init(config *config.Config, logger *zap.Logger, db *gorm.DB, redis *database.RedisClient) error { |
|
fmt.Printf("🔍 AuthModule.Init 被调用\n") |
|
m.logger = logger |
|
m.db = db |
|
m.config = config |
|
|
|
fmt.Printf("✅ AuthModule 配置已设置\n") |
|
// 运行数据库迁移 |
|
if err := migration.RunMigrations(db); err != nil { |
|
logger.Error("Failed to run auth migrations", zap.Error(err)) |
|
return err |
|
} |
|
|
|
fmt.Printf("✅ 数据库迁移完成\n") |
|
logger.Info("Auth module initialized successfully") |
|
return nil |
|
} |
|
|
|
func (m *AuthModule) RegisterRoutes(router *gin.RouterGroup) { |
|
fmt.Printf("🔍 AuthModule.RegisterRoutes 被调用\n") |
|
if m.db == nil { |
|
m.logger.Error("Database connection not available for auth routes") |
|
fmt.Printf("❌ 数据库连接不可用\n") |
|
return |
|
} |
|
|
|
fmt.Printf("✅ 数据库连接正常,开始注册认证路由\n") |
|
// 注册认证路由 |
|
routes.RegisterAuthRoutes(router, m.db, middleware.JWTConfig{ |
|
SecretKey: m.config.JWT.Secret, // 从配置中获取JWT密钥 |
|
Issuer: m.config.JWT.Issuer, // 从配置中获取JWT发行者 |
|
}) |
|
} |
|
|
|
func (m *AuthModule) Cleanup() { |
|
m.logger.Info("Cleaning up auth module") |
|
}
|
|
|