mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[chore] migrate oauth2 -> codeberg (#3857)
This commit is contained in:
76
vendor/codeberg.org/superseriousbusiness/oauth2/v4/const.go
generated
vendored
Normal file
76
vendor/codeberg.org/superseriousbusiness/oauth2/v4/const.go
generated
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
package oauth2
|
||||
|
||||
import (
|
||||
"crypto/sha256"
|
||||
"encoding/base64"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// ResponseType the type of authorization request
|
||||
type ResponseType string
|
||||
|
||||
// define the type of authorization request
|
||||
const (
|
||||
Code ResponseType = "code"
|
||||
Token ResponseType = "token"
|
||||
)
|
||||
|
||||
func (rt ResponseType) String() string {
|
||||
return string(rt)
|
||||
}
|
||||
|
||||
// GrantType authorization model
|
||||
type GrantType string
|
||||
|
||||
// define authorization model
|
||||
const (
|
||||
AuthorizationCode GrantType = "authorization_code"
|
||||
PasswordCredentials GrantType = "password"
|
||||
ClientCredentials GrantType = "client_credentials"
|
||||
Refreshing GrantType = "refresh_token"
|
||||
Implicit GrantType = "__implicit"
|
||||
)
|
||||
|
||||
func (gt GrantType) String() string {
|
||||
if gt == AuthorizationCode ||
|
||||
gt == PasswordCredentials ||
|
||||
gt == ClientCredentials ||
|
||||
gt == Refreshing {
|
||||
return string(gt)
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// CodeChallengeMethod PCKE method
|
||||
type CodeChallengeMethod string
|
||||
|
||||
const (
|
||||
// CodeChallengePlain PCKE Method
|
||||
CodeChallengePlain CodeChallengeMethod = "plain"
|
||||
// CodeChallengeS256 PCKE Method
|
||||
CodeChallengeS256 CodeChallengeMethod = "S256"
|
||||
)
|
||||
|
||||
func (ccm CodeChallengeMethod) String() string {
|
||||
if ccm == CodeChallengePlain ||
|
||||
ccm == CodeChallengeS256 {
|
||||
return string(ccm)
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// Validate code challenge
|
||||
func (ccm CodeChallengeMethod) Validate(cc, ver string) bool {
|
||||
switch ccm {
|
||||
case CodeChallengePlain:
|
||||
return cc == ver
|
||||
case CodeChallengeS256:
|
||||
s256 := sha256.Sum256([]byte(ver))
|
||||
// trim padding
|
||||
a := strings.TrimRight(base64.URLEncoding.EncodeToString(s256[:]), "=")
|
||||
b := strings.TrimRight(cc, "=")
|
||||
return a == b
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user