setup new provider endpoint creation
This commit is contained in:
+5
-1
@@ -15,6 +15,10 @@ import (
|
||||
|
||||
var TestTokenStore TokenStore
|
||||
|
||||
func SetAuth() {
|
||||
TestTokenStore = TokenStore{filePath: "token.json"}
|
||||
}
|
||||
|
||||
func generateState() (string, error) {
|
||||
b := make([]byte, 32)
|
||||
if _, err := rand.Read(b); err != nil {
|
||||
@@ -80,7 +84,7 @@ func HandleOAuth(authData webserver.OAuthAuthData) bool {
|
||||
SameSite: http.SameSiteLaxMode,
|
||||
})
|
||||
|
||||
url := OAuthConfigs[0].AuthCodeURL(
|
||||
url := DefaultProvider.Config.AuthCodeURL(
|
||||
state,
|
||||
oauth2.S256ChallengeOption(verifier),
|
||||
)
|
||||
|
||||
@@ -18,6 +18,7 @@ type OAuthProvider struct {
|
||||
}
|
||||
|
||||
var Providers []OAuthProvider
|
||||
var DefaultProvider *OAuthProvider // Assumed to be the last created provider
|
||||
|
||||
func CreateOAuthProvider(issuer string, clientID string) error {
|
||||
ctx := context.Background()
|
||||
@@ -42,5 +43,6 @@ func CreateOAuthProvider(issuer string, clientID string) error {
|
||||
Config: OAuthConfig,
|
||||
}
|
||||
Providers = append(Providers, newProvider)
|
||||
DefaultProvider = &newProvider
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ func OAuthCallback(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
verifier := verifierCookie.Value
|
||||
|
||||
token, err := OAuthConfigs[0].Exchange(context.Background(), code, oauth2.VerifierOption(verifier))
|
||||
token, err := DefaultProvider.Config.Exchange(context.Background(), code, oauth2.VerifierOption(verifier))
|
||||
if err != nil {
|
||||
http.Error(w, "Failed to exchange token: "+err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
|
||||
@@ -16,11 +16,9 @@ func handleUser(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
auth.OAuthProviders[0].UserInfoEndpoint()
|
||||
client := auth.DefaultProvider.Config.Client(context.Background(), token)
|
||||
|
||||
client := auth.OAuthConfigs[0].Client(context.Background(), token)
|
||||
|
||||
resp, err := client.Get(auth.OAuthProviders[0].UserInfoEndpoint())
|
||||
resp, err := client.Get(auth.DefaultProvider.Provider.UserInfoEndpoint())
|
||||
if err != nil {
|
||||
http.Error(w, "Failed to fetch user: "+err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user