gotosocial/vendor/code.superseriousbusiness.org/oauth2/v4/server/config.go

66 lines
1.5 KiB
Go
Raw Normal View History

package server
import (
"net/http"
"time"
"code.superseriousbusiness.org/oauth2/v4"
)
// Config configuration parameters
type Config struct {
// token type
TokenType string
// to allow GET requests for the token
AllowGetAccessRequest bool
// allow the authorization type
AllowedResponseTypes []oauth2.ResponseType
// allow the grant type
AllowedGrantTypes []oauth2.GrantType
// Allowed values for "code_challenge_method".
AllowedCodeChallengeMethods []oauth2.CodeChallengeMethod
// Default to fall back to
// if "code_challenge_method"
// was not set in the request.
DefaultCodeChallengeMethod oauth2.CodeChallengeMethod
ForcePKCE bool
}
// NewConfig create to configuration instance
func NewConfig() *Config {
return &Config{
TokenType: "Bearer",
AllowedResponseTypes: []oauth2.ResponseType{oauth2.Code, oauth2.Token},
AllowedGrantTypes: []oauth2.GrantType{
oauth2.AuthorizationCode,
oauth2.PasswordCredentials,
oauth2.ClientCredentials,
oauth2.Refreshing,
},
AllowedCodeChallengeMethods: []oauth2.CodeChallengeMethod{
oauth2.CodeChallengePlain,
oauth2.CodeChallengeS256,
},
}
}
// AuthorizeRequest authorization request
type AuthorizeRequest struct {
ResponseType oauth2.ResponseType
ClientID string
Scope string
RedirectURI string
State string
UserID string
CodeChallenge string
CodeChallengeMethod oauth2.CodeChallengeMethod
AccessTokenExp time.Duration
Request *http.Request
}