diff options
| author | mo khan <mo@mokhan.ca> | 2022-05-08 20:58:56 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2022-05-08 20:58:56 -0600 |
| commit | 8e4f69b009e9796a7632e55bee32f16b9109b9a7 (patch) | |
| tree | 48352122339fc41a7ed599196ed17375903784bc | |
| parent | 430322196d4aca30d359dfb0d8e8b02d6ad590ba (diff) | |
refactor: embed client metadata in response
| -rw-r--r-- | pkg/dto/client_information_response.go | 28 | ||||
| -rw-r--r-- | pkg/dto/client_metadata.go | 2 | ||||
| -rw-r--r-- | pkg/web/register_test.go | 4 |
3 files changed, 15 insertions, 19 deletions
diff --git a/pkg/dto/client_information_response.go b/pkg/dto/client_information_response.go index be7099d..62f4527 100644 --- a/pkg/dto/client_information_response.go +++ b/pkg/dto/client_information_response.go @@ -13,27 +13,23 @@ type ClientInformationResponse struct { ClientSecret string `json:"client_secret"` ClientIdIssuedAt int64 `json:"client_id_issued_at"` ClientSecretExpiresAt int64 `json:"client_secret_expires_at"` - - RedirectUris []string `json:"redirect_uris"` - GrantTypes []string `json:"grant_types"` - ClientName string `json:"client_name"` - TokenEndpointAuthMethod string `json:"token_endpoint_auth_method"` - LogoUri string `json:"logo_uri"` - JwksUri string `json:"jwks_uri"` + ClientMetadata } func NewClientInformationResponse(request *ClientRegistrationRequest) *ClientInformationResponse { expiresAt := time.Now().Add(time.Duration(1) * time.Hour) return &ClientInformationResponse{ - ClientId: uuid.GenerateUUID(), - ClientIdIssuedAt: time.Now().Unix(), - ClientName: request.ClientName, - ClientSecret: uuid.GenerateUUID(), - ClientSecretExpiresAt: expiresAt.Unix(), - RedirectUris: request.RedirectUris, - TokenEndpointAuthMethod: request.TokenEndpointAuthMethod.String(), - LogoUri: request.LogoUri, - JwksUri: request.JWKSUri, + ClientMetadata: ClientMetadata{ + RedirectUris: request.RedirectUris, + ClientName: request.ClientName, + TokenEndpointAuthMethod: request.TokenEndpointAuthMethod, + LogoUri: request.LogoUri, + JWKSUri: request.JWKSUri, + }, + ClientId: uuid.GenerateUUID(), + ClientIdIssuedAt: time.Now().Unix(), + ClientSecret: uuid.GenerateUUID(), + ClientSecretExpiresAt: expiresAt.Unix(), } } diff --git a/pkg/dto/client_metadata.go b/pkg/dto/client_metadata.go index 154c5fb..5180f00 100644 --- a/pkg/dto/client_metadata.go +++ b/pkg/dto/client_metadata.go @@ -3,7 +3,7 @@ package dto type ClientMetadata struct { RedirectUris []string `json:"redirect_uris"` TokenEndpointAuthMethod TokenEndpointAuthMethod `json:"token_endpoint_auth_method"` - GrantTypes []GrantType + GrantTypes []GrantType `json:"grant_types"` ResponseTypes []ResponseType ClientName string `json:"client_name"` ClientUri string diff --git a/pkg/web/register_test.go b/pkg/web/register_test.go index ccb10df..25700c0 100644 --- a/pkg/web/register_test.go +++ b/pkg/web/register_test.go @@ -40,10 +40,10 @@ func TestRegister(t *testing.T) { json.NewDecoder(w.Body).Decode(&x) assert.Equal(t, "My Client", x.ClientName) - assert.Equal(t, "client_secret_basic", x.TokenEndpointAuthMethod) + assert.Equal(t, dto.ClientSecretBasic, x.TokenEndpointAuthMethod) assert.Equal(t, "https://client.example.org/callback", x.RedirectUris[0]) assert.Equal(t, "https://client.example.org/logo.png", x.LogoUri) - assert.Equal(t, "https://client.example.org/my_public_keys.jwks", x.JwksUri) + assert.Equal(t, "https://client.example.org/my_public_keys.jwks", x.JWKSUri) assert.Equal(t, 1, len(x.RedirectUris)) assert.NotEmpty(t, x.ClientId) assert.NotEmpty(t, x.ClientIdIssuedAt) |
