tijl.dev-core/internal/oidc/oidc.go

41 lines
914 B
Go
Raw Normal View History

2024-08-20 11:49:05 +02:00
package oidc
2024-08-20 13:35:49 +02:00
2024-08-21 15:43:24 +02:00
import (
"context"
2024-08-22 15:15:16 +02:00
"git.tijl.dev/tijl/tijl.dev-core/internal/config"
log "git.tijl.dev/tijl/tijl.dev-core/modules/logger"
2024-08-21 15:43:24 +02:00
"github.com/coreos/go-oidc/v3/oidc"
"golang.org/x/oauth2"
)
var Config *oauth2.Config
var Provider *oidc.Provider
var Verifier *oidc.IDTokenVerifier
func Load(ctx context.Context) {
var err error
Provider, err = oidc.NewProvider(ctx, config.Config.Oidc.Provider)
if err != nil {
log.Fatal().Err(err).Msg("failed to load oidc")
}
oidcConfig := &oidc.Config{
ClientID: config.Config.ClientID,
}
Config = &oauth2.Config{
ClientID: config.Config.Oidc.ClientID,
ClientSecret: config.Config.Oidc.ClientSecret,
RedirectURL: config.Config.UrlBase + config.Config.Oidc.CallbackUrl,
Endpoint: Provider.Endpoint(),
Scopes: []string{oidc.ScopeOpenID, "profile", "email"},
}
2024-08-20 13:35:49 +02:00
2024-08-21 15:43:24 +02:00
Verifier = Provider.Verifier(oidcConfig)
2024-08-20 13:35:49 +02:00
2024-08-22 13:47:16 +02:00
log.Info().Msg("loaded oidc")
2024-08-20 13:35:49 +02:00
}