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