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