Config and swagger upgrade
This commit is contained in:
		
							
								
								
									
										137
									
								
								models/registration.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								models/registration.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,137 @@ | ||||
| package models | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"fmt" | ||||
| 	"os" | ||||
|  | ||||
| 	client "github.com/ory/hydra-client-go" | ||||
| 	"golang.org/x/oauth2" | ||||
| 	"golang.org/x/oauth2/clientcredentials" | ||||
| ) | ||||
|  | ||||
| func CreateClient(clientId string, clientName string, clientSecret string) (string, string, error) { | ||||
| 	tokenAuthMethod := "client_secret_post" | ||||
| 	oAuth2Client := *client.NewOAuth2Client() // OAuth2Client | | ||||
| 	oAuth2Client.SetClientId(clientId) | ||||
| 	oAuth2Client.SetClientName(clientName) | ||||
| 	oAuth2Client.SetClientSecret(clientSecret) | ||||
| 	oAuth2Client.SetGrantTypes([]string{"client_credentials"}) | ||||
| 	oAuth2Client.TokenEndpointAuthMethod = &tokenAuthMethod | ||||
|  | ||||
| 	config := client.NewConfiguration() | ||||
| 	config.Servers = client.ServerConfigurations{{URL: "http://127.0.0.1:4445"}} | ||||
| 	client := client.NewAPIClient(config) | ||||
|  | ||||
| 	resp, _, err := client.AdminApi.CreateOAuth2Client(context.Background()).OAuth2Client(oAuth2Client).Execute() | ||||
| 	if err != nil { | ||||
| 		return "", "", err | ||||
| 	} | ||||
| 	return resp.GetClientId(), resp.GetClientSecret(), nil | ||||
| } | ||||
|  | ||||
| func GetAccessToken(clientID, clientSecret string) (string, error) { | ||||
| 	config := clientcredentials.Config{ | ||||
| 		ClientID:     clientID, | ||||
| 		ClientSecret: clientSecret, | ||||
| 		TokenURL:     "http://127.0.0.1:4444/oauth2/token", | ||||
| 		AuthStyle:    oauth2.AuthStyleInParams, | ||||
| 	} | ||||
|  | ||||
| 	token, err := config.Token(context.Background()) | ||||
| 	if err != nil { | ||||
| 		fmt.Println("Error obtaining token:", err) | ||||
| 		return "", err | ||||
| 	} | ||||
|  | ||||
| 	return token.AccessToken, nil | ||||
| } | ||||
|  | ||||
| func ListClients() { | ||||
| 	configuration := client.NewConfiguration() | ||||
| 	configuration.Servers = []client.ServerConfiguration{ | ||||
| 		{ | ||||
| 			URL: "http://localhost:4445", // Public API URL | ||||
| 		}, | ||||
| 	} | ||||
| 	apiClient := client.NewAPIClient(configuration) | ||||
|  | ||||
| 	limit := int64(20) | ||||
| 	offset := int64(0) | ||||
| 	clients, r, err := apiClient.AdminApi.ListOAuth2Clients(context.Background()).Limit(limit).Offset(offset).Execute() | ||||
| 	if err != nil { | ||||
| 		fmt.Fprintf(os.Stderr, "Error when calling `OAuth2Api.ListOAuth2Clients``: %v\n", err) | ||||
| 		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) | ||||
| 	} | ||||
| 	for i, c := range clients { | ||||
| 		fmt.Fprintf(os.Stdout, "  %d : %s %s %s\n", i, *c.ClientId, c.GetClientName(), c.GetClientSecret()) | ||||
| 	} | ||||
| 	fmt.Fprintf(os.Stdout, "We have %d clients\n", len(clients)) | ||||
| } | ||||
|  | ||||
| func DeleteClient(clientId string) { | ||||
| 	configuration := client.NewConfiguration() | ||||
| 	configuration.Servers = []client.ServerConfiguration{ | ||||
| 		{ | ||||
| 			URL: "http://localhost:4445", // Public API URL | ||||
| 		}, | ||||
| 	} | ||||
| 	apiClient := client.NewAPIClient(configuration) | ||||
| 	r, err := apiClient.AdminApi.DeleteOAuth2Client(context.Background(), clientId).Execute() | ||||
| 	if err != nil { | ||||
| 		fmt.Fprintf(os.Stderr, "Error when calling `OAuth2Api.DeleteOAuth2Client``: %v\n", err) | ||||
| 		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) | ||||
| 	} | ||||
|  | ||||
| } | ||||
|  | ||||
| func DeleteClients() { | ||||
| 	configuration := client.NewConfiguration() | ||||
| 	configuration.Servers = []client.ServerConfiguration{ | ||||
| 		{ | ||||
| 			URL: "http://localhost:4445", // Public API URL | ||||
| 		}, | ||||
| 	} | ||||
| 	apiClient := client.NewAPIClient(configuration) | ||||
|  | ||||
| 	limit := int64(20) | ||||
| 	offset := int64(0) | ||||
| 	clients, r, err := apiClient.AdminApi.ListOAuth2Clients(context.Background()).Limit(limit).Offset(offset).Execute() | ||||
| 	if err != nil { | ||||
| 		fmt.Fprintf(os.Stderr, "Error when calling `OAuth2Api.ListOAuth2Clients``: %v\n", err) | ||||
| 		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) | ||||
| 	} | ||||
| 	for _, c := range clients { | ||||
| 		fmt.Fprintf(os.Stdout, "  Deleting : %s %s %s\n", c.GetClientId(), c.GetClientName(), c.GetClientSecret()) | ||||
| 		r, err := apiClient.AdminApi.DeleteOAuth2Client(context.Background(), c.GetClientId()).Execute() | ||||
| 		if err != nil { | ||||
| 			fmt.Fprintf(os.Stderr, "Error when calling `OAuth2Api.DeleteOAuth2Client``: %v\n", err) | ||||
| 			fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r) | ||||
| 		} | ||||
| 		fmt.Fprintf(os.Stdout, "  Deleted: %s\n", c.GetClientId()) | ||||
| 	} | ||||
| 	fmt.Fprintf(os.Stdout, "We deleted %d clients\n", len(clients)) | ||||
| } | ||||
|  | ||||
| func CreateCodeClient(clientId string) (string, string, error) { | ||||
| 	config := client.NewConfiguration() | ||||
| 	config.Servers = client.ServerConfigurations{{URL: "http://127.0.0.1:4445"}} | ||||
| 	tokenAuthMethod := "client_secret_post" | ||||
|  | ||||
| 	oAuth2Client := *client.NewOAuth2Client() // OAuth2Client | | ||||
| 	oAuth2Client.SetClientId(clientId + "_api") | ||||
| 	oAuth2Client.SetGrantTypes([]string{"authorization_code", "refresh_token"}) | ||||
| 	oAuth2Client.SetResponseTypes([]string{"code", "id_token"}) | ||||
| 	oAuth2Client.SetScope("openid offline") | ||||
| 	oAuth2Client.SetRedirectUris([]string{"http://127.0.0.1:5555/callback"}) | ||||
| 	oAuth2Client.TokenEndpointAuthMethod = &tokenAuthMethod | ||||
|  | ||||
| 	client := client.NewAPIClient(config) | ||||
|  | ||||
| 	resp, _, err := client.AdminApi.CreateOAuth2Client(context.Background()).OAuth2Client(oAuth2Client).Execute() | ||||
| 	if err != nil { | ||||
| 		return "", "", err | ||||
| 	} | ||||
|  | ||||
| 	return resp.GetClientId(), resp.GetClientSecret(), nil | ||||
| } | ||||
		Reference in New Issue
	
	Block a user