mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 14:22:25 -05:00 
			
		
		
		
	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>
		
			
				
	
	
		
			65 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			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
 | |
| }
 |