- OAuth认证系统(Gitea + Lua扩展) - Git自动化操作(本地/SSH远程) - 实时进度WebSocket推送 - 现代化Tab界面UI - Cobra CLI命令行(init/version/serve) - 完整构建系统(Makefile + Taskfile) - UPX压缩支持(体积减少70%)
26 lines
417 B
Go
26 lines
417 B
Go
package oauth
|
|
|
|
import "fmt"
|
|
|
|
type Manager struct {
|
|
provider map[string]Provider
|
|
}
|
|
|
|
func NewManager() *Manager {
|
|
return &Manager{
|
|
provider: map[string]Provider{},
|
|
}
|
|
}
|
|
|
|
func (m *Manager) Register(p Provider) {
|
|
m.provider[p.Name()] = p
|
|
}
|
|
|
|
func (m *Manager) Get(name string) (Provider, error) {
|
|
p, ok := m.provider[name]
|
|
if !ok {
|
|
return nil, fmt.Errorf("oauth provider not found: %s", name)
|
|
}
|
|
return p, nil
|
|
}
|