gotosocial/vendor/code.superseriousbusiness.org/oauth2/v4/server/config.go
tobi 118d4e4d03 [bugfix] Assume default code challenge method of s256 (#4241)
Bumps our oauth2 dependency, and uses *default* code challenge method of S256 instead of plain.

Fixes https://codeberg.org/superseriousbusiness/gotosocial/issues/4238

Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4241
Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Co-committed-by: tobi <tobi.smethurst@protonmail.com>
2025-06-05 11:29:36 +02:00

65 lines
1.5 KiB
Go

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
}