Files
atom/providers/casdoor/casdoor.go
2023-06-09 10:28:34 +08:00

37 lines
743 B
Go

package casdoor
import (
"log"
"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 {
log.Fatal(err)
}
return container.Container.Provide(func(cert *cert.Cert) *Casdoor {
certificate := config.Certificate
if cert == "" {
certificate = cert.Cert
}
casdoorsdk.InitConfig(
config.Endpoint,
config.ClientId,
config.ClientSecret,
certificate,
config.OrganizationName,
config.ApplicationName,
)
return &Casdoor{}
}, o.DiOptions()...)
}