Files
ssq-desk/internal/module/auth_module.go
2026-01-14 14:17:38 +08:00

63 lines
1.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package module
import (
"context"
"ssq-desk/internal/api"
)
// AuthModule 授权码模块
type AuthModule struct {
BaseModule
authAPI *api.AuthAPI
}
// NewAuthModule 创建授权码模块
func NewAuthModule() (*AuthModule, error) {
// 延迟初始化,等到 Init() 方法调用时再创建 API此时数据库已初始化
return &AuthModule{
BaseModule: BaseModule{
name: "auth",
api: nil, // 延迟初始化
},
authAPI: nil, // 延迟初始化
}, nil
}
// Init 初始化模块
func (m *AuthModule) Init(ctx context.Context) error {
if m.authAPI == nil {
authAPI, err := api.NewAuthAPI()
if err != nil {
return err
}
m.authAPI = authAPI
m.api = authAPI
}
return nil
}
// Start 启动模块(检查授权状态)
func (m *AuthModule) Start(ctx context.Context) error {
if m.authAPI == nil {
return m.Init(ctx)
}
status, err := m.authAPI.GetAuthStatus()
if err == nil {
if data, ok := status["data"].(map[string]interface{}); ok && data != nil {
if isActivated, ok := data["is_activated"].(bool); ok && !isActivated {
println("授权未激活,部分功能可能受限")
} else {
println("授权验证通过")
}
}
}
return nil
}
// AuthAPI 返回 Auth API类型安全
func (m *AuthModule) AuthAPI() *api.AuthAPI {
return m.authAPI
}