Files
atom/providers/casdoor/casdoor.go
2023-06-09 14:32:21 +08:00

34 lines
736 B
Go

package casdoor
import (
"github.com/casdoor/casdoor-go-sdk/casdoorsdk"
"github.com/rogeecn/atom/container"
"github.com/rogeecn/atom/providers/cert"
"github.com/rogeecn/atom/utils/opt"
)
type Casdoor struct{}
func Provide(opts ...opt.Option) error {
o := opt.New(opts...)
var config Config
if err := o.UnmarshalConfig(&config); err != nil {
return err
}
return container.Container.Provide(func(cert *cert.Cert) *Casdoor {
certificate := config.Certificate
if certificate == "" {
certificate = cert.Cert
}
casdoorsdk.InitConfig(
config.Endpoint,
config.ClientId,
config.ClientSecret,
certificate,
config.OrganizationName,
config.ApplicationName,
)
return &Casdoor{}
}, o.DiOptions()...)
}