Documentation
¶
Index ¶
Constants ¶
View Source
const ( TokenScopeKey = "scope" TokenNicknameKey = "nickname" TokenNameKey = "name" TokenPictureKey = "picture" TokenDeviceID = "https://plgd.dev/deviceId" )
View Source
const DefaultScope = "openid profile email offline_access r:* w:*"
View Source
const DeviceUserID = "1"
Variables ¶
This section is empty.
Functions ¶
func LoadPrivateKey ¶
func NewHTTP ¶
func NewHTTP(requestHandler *RequestHandler) *http.Server
NewHTTP returns HTTP server
Types ¶
type APIsConfig ¶
Config represent application configuration
func (*APIsConfig) Validate ¶
func (c *APIsConfig) Validate() error
type AccessTokenType ¶
type AccessTokenType string
const AccessTokenType_JWT AccessTokenType = "jwt"
type AllowedGrantType ¶
type AllowedGrantType string
const AllowedGrantType_AUTHORIZATION_CODE AllowedGrantType = "authorization_code"
const AllowedGrantType_CLIENT_CREDENTIALS AllowedGrantType = "client_credentials"
const AllowedGrantType_PASSWORD AllowedGrantType = "password"
const AllowedGrantType_REFRESH_TOKEN AllowedGrantType = "refresh_token"
type AsymmetricKey ¶
type Client ¶
type Client struct { ID string `yaml:"id"` ClientSecret string `yaml:"secret"` AuthorizationCodeLifetime time.Duration `yaml:"authorizationCodeLifetime"` AccessTokenLifetime time.Duration `yaml:"accessTokenLifetime"` CodeRestrictionLifetime time.Duration `yaml:"codeRestrictionLifetime"` RefreshTokenRestrictionLifetime time.Duration `yaml:"refreshTokenRestrictionLifetime"` ConsentScreenEnabled bool `yaml:"consentScreenEnabled"` RequireIssuedAuthorizationCode bool `yaml:"requireIssuedAuthorizationCode"` RequiredScope []string `yaml:"requiredScope"` RequiredResponseType string `yaml:"requiredResponseType"` RequiredRedirectURI string `yaml:"requiredRedirectURI"` }
type ClientsConfig ¶
type ClientsConfig []*Client
func (ClientsConfig) Find ¶
func (c ClientsConfig) Find(id string) *Client
type Config ¶
type Config struct { Log log.Config `yaml:"log" json:"log"` APIs APIsConfig `yaml:"apis" json:"apis"` OAuthSigner OAuthSignerConfig `yaml:"oauthSigner" json:"oauthSigner"` }
Config represents application configuration
type OAuthSignerConfig ¶
type OAuthSignerConfig struct { IDTokenKeyFile string `yaml:"idTokenKeyFile" json:"idTokenKeyFile"` AccessTokenKeyFile string `yaml:"accessTokenKeyFile" json:"accessTokenKeyFile"` Domain string `yaml:"domain" json:"domain"` Clients ClientsConfig `yaml:"clients" json:"clients"` }
func (*OAuthSignerConfig) Validate ¶
func (c *OAuthSignerConfig) Validate() error
type RequestHandler ¶
type RequestHandler struct {
// contains filtered or unexported fields
}
RequestHandler for handling incoming request
func NewRequestHandler ¶
func NewRequestHandler(ctx context.Context, config *Config, idTokenKey *rsa.PrivateKey, accessTokenKey interface{}) (*RequestHandler, error)
NewRequestHandler factory for new RequestHandler
Click to show internal directories.
Click to hide internal directories.