opaal/internal/oidc/oidc.go

38 lines
955 B
Go

package oidc
import "fmt"
type OpenIDConnectProvider struct {
Host string
Port int
AuthorizeEndpoint string
TokenEndpoint string
ConfigEndpoint string
}
func NewOIDCProvider() *OpenIDConnectProvider {
return &OpenIDConnectProvider{
Host: "127.0.0.1",
Port: 80,
AuthorizeEndpoint: "/oauth/authorize",
TokenEndpoint: "/oauth/token",
}
}
func (oidc *OpenIDConnectProvider) GetAuthorizeUrl() string {
if oidc.Port != 80 {
return fmt.Sprintf("%s:%d", oidc.Host, oidc.Port) + oidc.AuthorizeEndpoint
}
return oidc.Host + oidc.AuthorizeEndpoint
}
func (oidc *OpenIDConnectProvider) GetTokenUrl() string {
if oidc.Port != 80 {
return fmt.Sprintf("%s:%d", oidc.Host, oidc.Port) + oidc.TokenEndpoint
}
return oidc.Host + oidc.TokenEndpoint
}
func (oidc *OpenIDConnectProvider) FetchServerConfiguration(url string) {
// make a request to a server's openid-configuration
}