Documentation ¶
Index ¶
- Variables
- func MakeAuthorizationURL(base string, query url.Values) string
- func NewOAuthError(errorString string, errorDescription string, errorURI string) error
- type ADFSImpl
- func (f *ADFSImpl) Config() config.OAuthSSOProviderConfig
- func (f *ADFSImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (f *ADFSImpl) GetAuthURL(param GetAuthURLParam) (string, error)
- func (f *ADFSImpl) GetPrompt(prompt []string) []string
- func (f *ADFSImpl) OpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (*ADFSImpl) Type() config.OAuthSSOProviderType
- type AccessTokenResp
- type AppleImpl
- func (f *AppleImpl) Config() config.OAuthSSOProviderConfig
- func (f *AppleImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (f *AppleImpl) GetAuthURL(param GetAuthURLParam) (string, error)
- func (f *AppleImpl) GetPrompt(prompt []string) []string
- func (f *AppleImpl) OpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (*AppleImpl) Type() config.OAuthSSOProviderType
- type AuthInfo
- type AuthorizationURLParams
- type Azureadb2cImpl
- func (f *Azureadb2cImpl) Config() config.OAuthSSOProviderConfig
- func (f *Azureadb2cImpl) Extract(claims map[string]interface{}) (stdattrs.T, error)
- func (f *Azureadb2cImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (f *Azureadb2cImpl) GetAuthURL(param GetAuthURLParam) (string, error)
- func (f *Azureadb2cImpl) GetPrompt(prompt []string) []string
- func (f *Azureadb2cImpl) OpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (f *Azureadb2cImpl) Type() config.OAuthSSOProviderType
- type Azureadv2Impl
- func (f *Azureadv2Impl) Config() config.OAuthSSOProviderConfig
- func (f *Azureadv2Impl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (f *Azureadv2Impl) GetAuthURL(param GetAuthURLParam) (string, error)
- func (f *Azureadv2Impl) GetPrompt(prompt []string) []string
- func (f *Azureadv2Impl) OpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (*Azureadv2Impl) Type() config.OAuthSSOProviderType
- type FacebookImpl
- func (f *FacebookImpl) Config() config.OAuthSSOProviderConfig
- func (f *FacebookImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (f *FacebookImpl) GetAuthURL(param GetAuthURLParam) (string, error)
- func (f *FacebookImpl) GetPrompt(prompt []string) []string
- func (f *FacebookImpl) NonOpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (*FacebookImpl) Type() config.OAuthSSOProviderType
- type GetAuthInfoParam
- type GetAuthURLParam
- type GithubImpl
- func (g *GithubImpl) Config() config.OAuthSSOProviderConfig
- func (g *GithubImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (g *GithubImpl) GetAuthURL(param GetAuthURLParam) (string, error)
- func (*GithubImpl) GetPrompt(prompt []string) []string
- func (g *GithubImpl) NonOpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (*GithubImpl) Type() config.OAuthSSOProviderType
- type GoogleImpl
- func (f *GoogleImpl) Config() config.OAuthSSOProviderConfig
- func (f *GoogleImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (f *GoogleImpl) GetAuthURL(param GetAuthURLParam) (string, error)
- func (f *GoogleImpl) GetPrompt(prompt []string) []string
- func (f *GoogleImpl) OpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (*GoogleImpl) Type() config.OAuthSSOProviderType
- type LinkedInImpl
- func (f *LinkedInImpl) Config() config.OAuthSSOProviderConfig
- func (f *LinkedInImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (f *LinkedInImpl) GetAuthURL(param GetAuthURLParam) (string, error)
- func (f *LinkedInImpl) GetPrompt(prompt []string) []string
- func (f *LinkedInImpl) NonOpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (*LinkedInImpl) Type() config.OAuthSSOProviderType
- type NonOpenIDConnectProvider
- type OAuthAuthorizationResponse
- type OAuthHTTPClient
- type OAuthProvider
- type OAuthProviderFactory
- type OIDCDiscoveryDocument
- func (d *OIDCDiscoveryDocument) ExchangeCode(client OAuthHTTPClient, clock clock.Clock, code string, jwks jwk.Set, ...) (jwt.Token, error)
- func (d *OIDCDiscoveryDocument) FetchJWKs(client OAuthHTTPClient) (jwk.Set, error)
- func (d *OIDCDiscoveryDocument) MakeOAuthURL(params AuthorizationURLParams) string
- type OpenIDConnectProvider
- type ResponseMode
- type ResponseType
- type StandardAttributesNormalizer
- type WechatImpl
- func (w *WechatImpl) Config() config.OAuthSSOProviderConfig
- func (w *WechatImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (AuthInfo, error)
- func (w *WechatImpl) GetAuthURL(param GetAuthURLParam) (string, error)
- func (w *WechatImpl) GetPrompt(prompt []string) []string
- func (w *WechatImpl) NonOpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, _ GetAuthInfoParam) (authInfo AuthInfo, err error)
- func (*WechatImpl) Type() config.OAuthSSOProviderType
Constants ¶
This section is empty.
Variables ¶
View Source
var DependencySet = wire.NewSet( ProvideOAuthHTTPClient, wire.Struct(new(OAuthProviderFactory), "*"), )
View Source
var InvalidConfiguration = apierrors.InternalError.WithReason("InvalidConfiguration")
View Source
var OAuthError = apierrors.BadRequest.WithReason("OAuthError")
View Source
var OAuthProtocolError = apierrors.BadRequest.WithReason("OAuthProtocolError")
Functions ¶
Types ¶
type ADFSImpl ¶
type ADFSImpl struct { Clock clock.Clock ProviderConfig config.OAuthSSOProviderConfig Credentials config.OAuthSSOProviderCredentialsItem StandardAttributesNormalizer StandardAttributesNormalizer HTTPClient OAuthHTTPClient }
func (*ADFSImpl) Config ¶
func (f *ADFSImpl) Config() config.OAuthSSOProviderConfig
func (*ADFSImpl) GetAuthInfo ¶
func (f *ADFSImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*ADFSImpl) GetAuthURL ¶
func (f *ADFSImpl) GetAuthURL(param GetAuthURLParam) (string, error)
func (*ADFSImpl) OpenIDConnectGetAuthInfo ¶
func (f *ADFSImpl) OpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*ADFSImpl) Type ¶
func (*ADFSImpl) Type() config.OAuthSSOProviderType
type AccessTokenResp ¶
type AccessTokenResp map[string]interface{}
func NewBearerAccessTokenResp ¶
func NewBearerAccessTokenResp(accessToken string) AccessTokenResp
func (AccessTokenResp) AccessToken ¶
func (r AccessTokenResp) AccessToken() string
func (AccessTokenResp) ExpiresIn ¶
func (r AccessTokenResp) ExpiresIn() int
func (AccessTokenResp) IDToken ¶
func (r AccessTokenResp) IDToken() string
func (AccessTokenResp) TokenType ¶
func (r AccessTokenResp) TokenType() string
type AppleImpl ¶
type AppleImpl struct { Clock clock.Clock ProviderConfig config.OAuthSSOProviderConfig Credentials config.OAuthSSOProviderCredentialsItem StandardAttributesNormalizer StandardAttributesNormalizer HTTPClient OAuthHTTPClient }
func (*AppleImpl) Config ¶
func (f *AppleImpl) Config() config.OAuthSSOProviderConfig
func (*AppleImpl) GetAuthInfo ¶
func (f *AppleImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*AppleImpl) GetAuthURL ¶
func (f *AppleImpl) GetAuthURL(param GetAuthURLParam) (string, error)
func (*AppleImpl) OpenIDConnectGetAuthInfo ¶
func (f *AppleImpl) OpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*AppleImpl) Type ¶
func (*AppleImpl) Type() config.OAuthSSOProviderType
type AuthorizationURLParams ¶
type AuthorizationURLParams struct { ClientID string RedirectURI string Scope []string ResponseType ResponseType ResponseMode ResponseMode State string Prompt []string Nonce string WechatAppID string }
func (AuthorizationURLParams) Query ¶
func (p AuthorizationURLParams) Query() url.Values
type Azureadb2cImpl ¶
type Azureadb2cImpl struct { Clock clock.Clock ProviderConfig config.OAuthSSOProviderConfig Credentials config.OAuthSSOProviderCredentialsItem StandardAttributesNormalizer StandardAttributesNormalizer HTTPClient OAuthHTTPClient }
func (*Azureadb2cImpl) Config ¶
func (f *Azureadb2cImpl) Config() config.OAuthSSOProviderConfig
func (*Azureadb2cImpl) Extract ¶
func (f *Azureadb2cImpl) Extract(claims map[string]interface{}) (stdattrs.T, error)
func (*Azureadb2cImpl) GetAuthInfo ¶
func (f *Azureadb2cImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*Azureadb2cImpl) GetAuthURL ¶
func (f *Azureadb2cImpl) GetAuthURL(param GetAuthURLParam) (string, error)
func (*Azureadb2cImpl) GetPrompt ¶
func (f *Azureadb2cImpl) GetPrompt(prompt []string) []string
func (*Azureadb2cImpl) OpenIDConnectGetAuthInfo ¶
func (f *Azureadb2cImpl) OpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*Azureadb2cImpl) Type ¶
func (f *Azureadb2cImpl) Type() config.OAuthSSOProviderType
type Azureadv2Impl ¶
type Azureadv2Impl struct { Clock clock.Clock ProviderConfig config.OAuthSSOProviderConfig Credentials config.OAuthSSOProviderCredentialsItem StandardAttributesNormalizer StandardAttributesNormalizer HTTPClient OAuthHTTPClient }
func (*Azureadv2Impl) Config ¶
func (f *Azureadv2Impl) Config() config.OAuthSSOProviderConfig
func (*Azureadv2Impl) GetAuthInfo ¶
func (f *Azureadv2Impl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*Azureadv2Impl) GetAuthURL ¶
func (f *Azureadv2Impl) GetAuthURL(param GetAuthURLParam) (string, error)
func (*Azureadv2Impl) GetPrompt ¶
func (f *Azureadv2Impl) GetPrompt(prompt []string) []string
func (*Azureadv2Impl) OpenIDConnectGetAuthInfo ¶
func (f *Azureadv2Impl) OpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*Azureadv2Impl) Type ¶
func (*Azureadv2Impl) Type() config.OAuthSSOProviderType
type FacebookImpl ¶
type FacebookImpl struct { ProviderConfig config.OAuthSSOProviderConfig Credentials config.OAuthSSOProviderCredentialsItem StandardAttributesNormalizer StandardAttributesNormalizer HTTPClient OAuthHTTPClient }
func (*FacebookImpl) Config ¶
func (f *FacebookImpl) Config() config.OAuthSSOProviderConfig
func (*FacebookImpl) GetAuthInfo ¶
func (f *FacebookImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*FacebookImpl) GetAuthURL ¶
func (f *FacebookImpl) GetAuthURL(param GetAuthURLParam) (string, error)
func (*FacebookImpl) GetPrompt ¶
func (f *FacebookImpl) GetPrompt(prompt []string) []string
func (*FacebookImpl) NonOpenIDConnectGetAuthInfo ¶
func (f *FacebookImpl) NonOpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*FacebookImpl) Type ¶
func (*FacebookImpl) Type() config.OAuthSSOProviderType
type GetAuthInfoParam ¶
type GetAuthURLParam ¶
type GetAuthURLParam struct { RedirectURI string ResponseMode ResponseMode Nonce string State string Prompt []string }
type GithubImpl ¶
type GithubImpl struct { ProviderConfig config.OAuthSSOProviderConfig Credentials config.OAuthSSOProviderCredentialsItem StandardAttributesNormalizer StandardAttributesNormalizer HTTPClient OAuthHTTPClient }
func (*GithubImpl) Config ¶
func (g *GithubImpl) Config() config.OAuthSSOProviderConfig
func (*GithubImpl) GetAuthInfo ¶
func (g *GithubImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*GithubImpl) GetAuthURL ¶
func (g *GithubImpl) GetAuthURL(param GetAuthURLParam) (string, error)
func (*GithubImpl) GetPrompt ¶
func (*GithubImpl) GetPrompt(prompt []string) []string
func (*GithubImpl) NonOpenIDConnectGetAuthInfo ¶
func (g *GithubImpl) NonOpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*GithubImpl) Type ¶
func (*GithubImpl) Type() config.OAuthSSOProviderType
type GoogleImpl ¶
type GoogleImpl struct { Clock clock.Clock ProviderConfig config.OAuthSSOProviderConfig Credentials config.OAuthSSOProviderCredentialsItem StandardAttributesNormalizer StandardAttributesNormalizer HTTPClient OAuthHTTPClient }
func (*GoogleImpl) Config ¶
func (f *GoogleImpl) Config() config.OAuthSSOProviderConfig
func (*GoogleImpl) GetAuthInfo ¶
func (f *GoogleImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*GoogleImpl) GetAuthURL ¶
func (f *GoogleImpl) GetAuthURL(param GetAuthURLParam) (string, error)
func (*GoogleImpl) GetPrompt ¶
func (f *GoogleImpl) GetPrompt(prompt []string) []string
func (*GoogleImpl) OpenIDConnectGetAuthInfo ¶
func (f *GoogleImpl) OpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*GoogleImpl) Type ¶
func (*GoogleImpl) Type() config.OAuthSSOProviderType
type LinkedInImpl ¶
type LinkedInImpl struct { ProviderConfig config.OAuthSSOProviderConfig Credentials config.OAuthSSOProviderCredentialsItem StandardAttributesNormalizer StandardAttributesNormalizer HTTPClient OAuthHTTPClient }
func (*LinkedInImpl) Config ¶
func (f *LinkedInImpl) Config() config.OAuthSSOProviderConfig
func (*LinkedInImpl) GetAuthInfo ¶
func (f *LinkedInImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*LinkedInImpl) GetAuthURL ¶
func (f *LinkedInImpl) GetAuthURL(param GetAuthURLParam) (string, error)
func (*LinkedInImpl) GetPrompt ¶
func (f *LinkedInImpl) GetPrompt(prompt []string) []string
func (*LinkedInImpl) NonOpenIDConnectGetAuthInfo ¶
func (f *LinkedInImpl) NonOpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*LinkedInImpl) Type ¶
func (*LinkedInImpl) Type() config.OAuthSSOProviderType
type NonOpenIDConnectProvider ¶
type NonOpenIDConnectProvider interface {
NonOpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
}
NonOpenIDConnectProvider are OAuth 2.0 provider that does not implement OpenID Connect or we do not implement yet. They are "facebook" "linkedin" "wechat"
type OAuthAuthorizationResponse ¶
type OAuthAuthorizationResponse struct {
Code string
}
type OAuthHTTPClient ¶
func ProvideOAuthHTTPClient ¶
func ProvideOAuthHTTPClient(env *config.EnvironmentConfig) OAuthHTTPClient
type OAuthProvider ¶
type OAuthProvider interface { Type() config.OAuthSSOProviderType Config() config.OAuthSSOProviderConfig GetAuthURL(param GetAuthURLParam) (url string, err error) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (AuthInfo, error) GetPrompt(prompt []string) []string }
OAuthProvider is OAuth 2.0 based provider.
type OAuthProviderFactory ¶
type OAuthProviderFactory struct { IdentityConfig *config.IdentityConfig Credentials *config.OAuthSSOProviderCredentials Clock clock.Clock StandardAttributesNormalizer StandardAttributesNormalizer HTTPClient OAuthHTTPClient }
func (*OAuthProviderFactory) NewOAuthProvider ¶
func (p *OAuthProviderFactory) NewOAuthProvider(alias string) OAuthProvider
type OIDCDiscoveryDocument ¶
type OIDCDiscoveryDocument struct { Issuer string `json:"issuer"` AuthorizationEndpoint string `json:"authorization_endpoint"` TokenEndpoint string `json:"token_endpoint"` JWKSUri string `json:"jwks_uri"` }
func FetchOIDCDiscoveryDocument ¶
func FetchOIDCDiscoveryDocument(client OAuthHTTPClient, endpoint string) (*OIDCDiscoveryDocument, error)
func (*OIDCDiscoveryDocument) ExchangeCode ¶
func (d *OIDCDiscoveryDocument) ExchangeCode( client OAuthHTTPClient, clock clock.Clock, code string, jwks jwk.Set, clientID string, clientSecret string, redirectURI string, nonce string, tokenResp *AccessTokenResp, ) (jwt.Token, error)
func (*OIDCDiscoveryDocument) FetchJWKs ¶
func (d *OIDCDiscoveryDocument) FetchJWKs(client OAuthHTTPClient) (jwk.Set, error)
func (*OIDCDiscoveryDocument) MakeOAuthURL ¶
func (d *OIDCDiscoveryDocument) MakeOAuthURL(params AuthorizationURLParams) string
type OpenIDConnectProvider ¶
type OpenIDConnectProvider interface {
OpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (authInfo AuthInfo, err error)
}
OpenIDConnectProvider are OpenID Connect provider. They are "google" "apple" "azureadv2" "azureadb2c" "adfs"
type ResponseMode ¶
type ResponseMode string
const ( ResponseModeFormPost ResponseMode = "form_post" ResponseModeQuery ResponseMode = "query" )
type WechatImpl ¶
type WechatImpl struct { ProviderConfig config.OAuthSSOProviderConfig Credentials config.OAuthSSOProviderCredentialsItem StandardAttributesNormalizer StandardAttributesNormalizer HTTPClient OAuthHTTPClient }
func (*WechatImpl) Config ¶
func (w *WechatImpl) Config() config.OAuthSSOProviderConfig
func (*WechatImpl) GetAuthInfo ¶
func (w *WechatImpl) GetAuthInfo(r OAuthAuthorizationResponse, param GetAuthInfoParam) (AuthInfo, error)
func (*WechatImpl) GetAuthURL ¶
func (w *WechatImpl) GetAuthURL(param GetAuthURLParam) (string, error)
func (*WechatImpl) GetPrompt ¶
func (w *WechatImpl) GetPrompt(prompt []string) []string
func (*WechatImpl) NonOpenIDConnectGetAuthInfo ¶
func (w *WechatImpl) NonOpenIDConnectGetAuthInfo(r OAuthAuthorizationResponse, _ GetAuthInfoParam) (authInfo AuthInfo, err error)
func (*WechatImpl) Type ¶
func (*WechatImpl) Type() config.OAuthSSOProviderType
Click to show internal directories.
Click to hide internal directories.