72 lignes
3,1 Kio
Go
72 lignes
3,1 Kio
Go
|
package compose
|
||
|
|
||
|
import (
|
||
|
"github.com/ory/fosite/handler/oauth2"
|
||
|
"github.com/ory/fosite/handler/openid"
|
||
|
)
|
||
|
|
||
|
// OpenIDConnectExplicitFactory creates an OpenID Connect explicit ("authorize code flow") grant handler.
|
||
|
//
|
||
|
// **Important note:** You must add this handler *after* you have added an OAuth2 authorize code handler!
|
||
|
func OpenIDConnectExplicitFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
|
||
|
return &openid.OpenIDConnectExplicitHandler{
|
||
|
OpenIDConnectRequestStorage: storage.(openid.OpenIDConnectRequestStorage),
|
||
|
IDTokenHandleHelper: &openid.IDTokenHandleHelper{
|
||
|
IDTokenStrategy: strategy.(openid.OpenIDConnectTokenStrategy),
|
||
|
},
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// OpenIDConnectRefreshFactory creates a handler for refreshing openid connect tokens.
|
||
|
//
|
||
|
// **Important note:** You must add this handler *after* you have added an OAuth2 authorize code handler!
|
||
|
func OpenIDConnectRefreshFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
|
||
|
return &openid.OpenIDConnectRefreshHandler{
|
||
|
IDTokenHandleHelper: &openid.IDTokenHandleHelper{
|
||
|
IDTokenStrategy: strategy.(openid.OpenIDConnectTokenStrategy),
|
||
|
},
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// OpenIDConnectImplicitFactory creates an OpenID Connect implicit ("implicit flow") grant handler.
|
||
|
//
|
||
|
// **Important note:** You must add this handler *after* you have added an OAuth2 authorize code handler!
|
||
|
func OpenIDConnectImplicitFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
|
||
|
return &openid.OpenIDConnectImplicitHandler{
|
||
|
AuthorizeImplicitGrantTypeHandler: &oauth2.AuthorizeImplicitGrantTypeHandler{
|
||
|
AccessTokenStrategy: strategy.(oauth2.AccessTokenStrategy),
|
||
|
AccessTokenStorage: storage.(oauth2.AccessTokenStorage),
|
||
|
AccessTokenLifespan: config.GetAccessTokenLifespan(),
|
||
|
},
|
||
|
ScopeStrategy: config.GetScopeStrategy(),
|
||
|
IDTokenHandleHelper: &openid.IDTokenHandleHelper{
|
||
|
IDTokenStrategy: strategy.(openid.OpenIDConnectTokenStrategy),
|
||
|
},
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// OpenIDConnectHybridFactory creates an OpenID Connect hybrid grant handler.
|
||
|
//
|
||
|
// **Important note:** You must add this handler *after* you have added an OAuth2 authorize code handler!
|
||
|
func OpenIDConnectHybridFactory(config *Config, storage interface{}, strategy interface{}) interface{} {
|
||
|
return &openid.OpenIDConnectHybridHandler{
|
||
|
AuthorizeExplicitGrantHandler: &oauth2.AuthorizeExplicitGrantHandler{
|
||
|
AccessTokenStrategy: strategy.(oauth2.AccessTokenStrategy),
|
||
|
RefreshTokenStrategy: strategy.(oauth2.RefreshTokenStrategy),
|
||
|
AuthorizeCodeStrategy: strategy.(oauth2.AuthorizeCodeStrategy),
|
||
|
CoreStorage: storage.(oauth2.CoreStorage),
|
||
|
AuthCodeLifespan: config.GetAuthorizeCodeLifespan(),
|
||
|
AccessTokenLifespan: config.GetAccessTokenLifespan(),
|
||
|
},
|
||
|
ScopeStrategy: config.GetScopeStrategy(),
|
||
|
AuthorizeImplicitGrantTypeHandler: &oauth2.AuthorizeImplicitGrantTypeHandler{
|
||
|
AccessTokenStrategy: strategy.(oauth2.AccessTokenStrategy),
|
||
|
AccessTokenStorage: storage.(oauth2.AccessTokenStorage),
|
||
|
AccessTokenLifespan: config.GetAccessTokenLifespan(),
|
||
|
},
|
||
|
IDTokenHandleHelper: &openid.IDTokenHandleHelper{
|
||
|
IDTokenStrategy: strategy.(openid.OpenIDConnectTokenStrategy),
|
||
|
},
|
||
|
}
|
||
|
}
|