mirror of
https://codeberg.org/superseriousbusiness/gotosocial.git
synced 2024-12-25 10:28:18 +03:00
98263a7de6
* start fixing up tests * fix up tests + automate with drone * fiddle with linting * messing about with drone.yml * some more fiddling * hmmm * add cache * add vendor directory * verbose * ci updates * update some little things * update sig
50 lines
1.4 KiB
Go
50 lines
1.4 KiB
Go
package server
|
|
|
|
import (
|
|
"net/http"
|
|
"time"
|
|
|
|
"github.com/superseriousbusiness/oauth2/v4"
|
|
)
|
|
|
|
// Config configuration parameters
|
|
type Config struct {
|
|
TokenType string // token type
|
|
AllowGetAccessRequest bool // to allow GET requests for the token
|
|
AllowedResponseTypes []oauth2.ResponseType // allow the authorization type
|
|
AllowedGrantTypes []oauth2.GrantType // allow the grant type
|
|
AllowedCodeChallengeMethods []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
|
|
}
|