mirror of
https://github.com/pocket-id/pocket-id.git
synced 2026-10-11 04:09:05 +02:00
58 lines
1.8 KiB
Go
58 lines
1.8 KiB
Go
package oidc
|
|
|
|
import (
|
|
fositeoauth2 "github.com/pocket-id/fosite/handler/oauth2"
|
|
"github.com/pocket-id/fosite/handler/openid"
|
|
"github.com/pocket-id/fosite/handler/rfc8628"
|
|
"github.com/pocket-id/fosite/token/jwt"
|
|
)
|
|
|
|
// strategyProvider hands every Fosite handler the token strategy it needs
|
|
type strategyProvider struct {
|
|
opaque fositeoauth2.CoreStrategy
|
|
accessToken fositeoauth2.AccessTokenStrategy
|
|
device *deviceStrategy
|
|
idToken openid.OpenIDConnectTokenStrategy
|
|
|
|
jwt.Signer
|
|
}
|
|
|
|
var (
|
|
_ fositeoauth2.AuthorizeCodeStrategyProvider = (*strategyProvider)(nil)
|
|
_ fositeoauth2.AccessTokenStrategyProvider = (*strategyProvider)(nil)
|
|
_ fositeoauth2.RefreshTokenStrategyProvider = (*strategyProvider)(nil)
|
|
_ openid.OpenIDConnectTokenStrategyProvider = (*strategyProvider)(nil)
|
|
_ rfc8628.DeviceRateLimitStrategyProvider = (*strategyProvider)(nil)
|
|
_ rfc8628.DeviceCodeStrategyProvider = (*strategyProvider)(nil)
|
|
_ rfc8628.UserCodeStrategyProvider = (*strategyProvider)(nil)
|
|
_ jwt.Signer = (*strategyProvider)(nil)
|
|
)
|
|
|
|
func (s *strategyProvider) AuthorizeCodeStrategy() fositeoauth2.AuthorizeCodeStrategy {
|
|
return s.opaque
|
|
}
|
|
|
|
func (s *strategyProvider) AccessTokenStrategy() fositeoauth2.AccessTokenStrategy {
|
|
return s.accessToken
|
|
}
|
|
|
|
func (s *strategyProvider) RefreshTokenStrategy() fositeoauth2.RefreshTokenStrategy {
|
|
return s.opaque
|
|
}
|
|
|
|
func (s *strategyProvider) OpenIDConnectTokenStrategy() openid.OpenIDConnectTokenStrategy {
|
|
return s.idToken
|
|
}
|
|
|
|
func (s *strategyProvider) DeviceRateLimitStrategy() rfc8628.DeviceRateLimitStrategy {
|
|
return s.device
|
|
}
|
|
|
|
func (s *strategyProvider) DeviceCodeStrategy() rfc8628.DeviceCodeStrategy {
|
|
return s.device
|
|
}
|
|
|
|
func (s *strategyProvider) UserCodeStrategy() rfc8628.UserCodeStrategy {
|
|
return s.device
|
|
}
|