From c50c57470059b3d05a51457cfe1540be52de7d52 Mon Sep 17 00:00:00 2001 From: linuxchata Date: Sat, 7 Mar 2026 16:32:54 +0100 Subject: [PATCH] Add Bruno collection --- .../Shark.OAuth2.0/Access Token/Authorize.yml | 41 +++++++++++++ .../Access Token/Client Credentials Flow.yml | 32 ++++++++++ .../Access Token/Device Flow Token.yml | 29 +++++++++ .../Access Token/Device Flow.yml | 39 ++++++++++++ .../Access Token/Introspect.yml | 23 ++++++++ .../Access Token/Password Flow.yml | 34 +++++++++++ .../Access Token/Refresh Token Flow.yml | 50 ++++++++++++++++ .../Access Token/Revoke Access Token.yml | 25 ++++++++ .../Access Token/Revoke Refresh Token.yml | 25 ++++++++ bruno/Shark.OAuth2.0/Access Token/Token.yml | 44 ++++++++++++++ bruno/Shark.OAuth2.0/Access Token/folder.yml | 25 ++++++++ .../Client Registration/Client Delete.yml | 17 ++++++ .../Client Registration/Client Read.yml | 17 ++++++ .../Client Registration/Client Register.yml | 59 +++++++++++++++++++ .../Client Registration/Client Update.yml | 47 +++++++++++++++ .../Client Registration/folder.yml | 7 +++ .../OpenID Configuration JWKS.yml | 14 +++++ .../Configuration/OpenID Configuration.yml | 14 +++++ bruno/Shark.OAuth2.0/Configuration/folder.yml | 7 +++ .../User Info/User Info Post.yml | 17 ++++++ bruno/Shark.OAuth2.0/User Info/User Info.yml | 17 ++++++ bruno/Shark.OAuth2.0/User Info/folder.yml | 7 +++ bruno/Shark.OAuth2.0/opencollection.yml | 48 +++++++++++++++ .../Data/clients.json | 2 +- 24 files changed, 639 insertions(+), 1 deletion(-) create mode 100644 bruno/Shark.OAuth2.0/Access Token/Authorize.yml create mode 100644 bruno/Shark.OAuth2.0/Access Token/Client Credentials Flow.yml create mode 100644 bruno/Shark.OAuth2.0/Access Token/Device Flow Token.yml create mode 100644 bruno/Shark.OAuth2.0/Access Token/Device Flow.yml create mode 100644 bruno/Shark.OAuth2.0/Access Token/Introspect.yml create mode 100644 bruno/Shark.OAuth2.0/Access Token/Password Flow.yml create mode 100644 bruno/Shark.OAuth2.0/Access Token/Refresh Token Flow.yml create mode 100644 bruno/Shark.OAuth2.0/Access Token/Revoke Access Token.yml create mode 100644 bruno/Shark.OAuth2.0/Access Token/Revoke Refresh Token.yml create mode 100644 bruno/Shark.OAuth2.0/Access Token/Token.yml create mode 100644 bruno/Shark.OAuth2.0/Access Token/folder.yml create mode 100644 bruno/Shark.OAuth2.0/Client Registration/Client Delete.yml create mode 100644 bruno/Shark.OAuth2.0/Client Registration/Client Read.yml create mode 100644 bruno/Shark.OAuth2.0/Client Registration/Client Register.yml create mode 100644 bruno/Shark.OAuth2.0/Client Registration/Client Update.yml create mode 100644 bruno/Shark.OAuth2.0/Client Registration/folder.yml create mode 100644 bruno/Shark.OAuth2.0/Configuration/OpenID Configuration JWKS.yml create mode 100644 bruno/Shark.OAuth2.0/Configuration/OpenID Configuration.yml create mode 100644 bruno/Shark.OAuth2.0/Configuration/folder.yml create mode 100644 bruno/Shark.OAuth2.0/User Info/User Info Post.yml create mode 100644 bruno/Shark.OAuth2.0/User Info/User Info.yml create mode 100644 bruno/Shark.OAuth2.0/User Info/folder.yml create mode 100644 bruno/Shark.OAuth2.0/opencollection.yml diff --git a/bruno/Shark.OAuth2.0/Access Token/Authorize.yml b/bruno/Shark.OAuth2.0/Access Token/Authorize.yml new file mode 100644 index 0000000..36ccf58 --- /dev/null +++ b/bruno/Shark.OAuth2.0/Access Token/Authorize.yml @@ -0,0 +1,41 @@ +info: + name: Authorize + type: http + seq: 1 + +http: + method: GET + url: "{{HostUri}}/authorize/?response_type=code&client_id={{ClientIdPermanent}}&state={{State}}&redirect_uri=https://oauthdebugger.com/debug&scope=offline_access read add update delete openid profile email address phone" + params: + - name: response_type + value: code + type: query + - name: client_id + value: "{{ClientIdPermanent}}" + type: query + - name: state + value: "{{State}}" + type: query + - name: redirect_uri + value: https://oauthdebugger.com/debug + type: query + - name: scope + value: offline_access read add update delete openid profile email address phone + type: query + +runtime: + scripts: + - type: after-response + code: |- + const redirectUrl = res.getHeader('Location'); + if (redirectUrl != null) + { + const urlObj = new URL(redirectUrl); + bru.setVar("AuthorizeCode", urlObj.searchParams.get('code')); + } + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Access Token/Client Credentials Flow.yml b/bruno/Shark.OAuth2.0/Access Token/Client Credentials Flow.yml new file mode 100644 index 0000000..e2769ab --- /dev/null +++ b/bruno/Shark.OAuth2.0/Access Token/Client Credentials Flow.yml @@ -0,0 +1,32 @@ +info: + name: Client Credentials Flow + type: http + seq: 5 + +http: + method: POST + url: "{{HostUri}}/token" + headers: + - name: Content-Type + value: application/x-www-form-urlencoded + body: + type: form-urlencoded + data: + - name: client_id + value: "{{ClientIdPermanent}}" + - name: client_secret + value: "{{ClientSecretPermanent}}" + - name: grant_type + value: client_credentials + - name: scope + value: read + auth: + type: basic + username: "{{ClientIdPermanent}}" + password: "{{ClientSecretPermanent}}" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Access Token/Device Flow Token.yml b/bruno/Shark.OAuth2.0/Access Token/Device Flow Token.yml new file mode 100644 index 0000000..200cd85 --- /dev/null +++ b/bruno/Shark.OAuth2.0/Access Token/Device Flow Token.yml @@ -0,0 +1,29 @@ +info: + name: Device Flow Token + type: http + seq: 7 + +http: + method: POST + url: "{{HostUri}}/token/" + body: + type: form-urlencoded + data: + - name: grant_type + value: urn:ietf:params:oauth:grant-type:device_code + - name: client_id + value: "{{DeviceClientId}}" + - name: scope + value: device_auto + - name: device_code + value: "{{DeviceCode}}" + auth: + type: basic + username: "{{DeviceClientId}}" + password: "{{DeviceClientSecretPermanent}}" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Access Token/Device Flow.yml b/bruno/Shark.OAuth2.0/Access Token/Device Flow.yml new file mode 100644 index 0000000..45ad8f6 --- /dev/null +++ b/bruno/Shark.OAuth2.0/Access Token/Device Flow.yml @@ -0,0 +1,39 @@ +info: + name: Device Flow + type: http + seq: 6 + +http: + method: POST + url: "{{HostUri}}/deviceauthorization" + headers: + - name: Content-Type + value: application/x-www-form-urlencoded + body: + type: form-urlencoded + data: + - name: client_id + value: "{{DeviceClientId}}" + - name: client_secret + value: "{{DeviceClientSecretPermanent}}" + - name: scope + value: device_auto + +runtime: + scripts: + - type: after-response + code: "// Parse the JSON response body\r + + let responseData = res.getBody();\r + + \r + + // Set the 'RefDeviceCodereshToken' from the response as a collection variable\r + + bru.setVar(\"DeviceCode\", responseData.device_code);" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Access Token/Introspect.yml b/bruno/Shark.OAuth2.0/Access Token/Introspect.yml new file mode 100644 index 0000000..00f31db --- /dev/null +++ b/bruno/Shark.OAuth2.0/Access Token/Introspect.yml @@ -0,0 +1,23 @@ +info: + name: Introspect + type: http + seq: 8 + +http: + method: POST + url: "{{HostUri}}/introspect" + body: + type: form-urlencoded + data: + - name: token + value: "{{AccessToken}}" + auth: + type: basic + username: "{{ClientIdPermanent}}" + password: "{{ClientSecretPermanent}}" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Access Token/Password Flow.yml b/bruno/Shark.OAuth2.0/Access Token/Password Flow.yml new file mode 100644 index 0000000..72668d1 --- /dev/null +++ b/bruno/Shark.OAuth2.0/Access Token/Password Flow.yml @@ -0,0 +1,34 @@ +info: + name: Password Flow + type: http + seq: 4 + +http: + method: POST + url: "{{HostUri}}/token" + headers: + - name: Content-Type + value: application/x-www-form-urlencoded + body: + type: form-urlencoded + data: + - name: client_id + value: "{{ClientIdPermanent}}" + - name: client_secret + value: "{{ClientSecretPermanent}}" + - name: username + value: alice + - name: password + value: secret + - name: grant_type + value: password + - name: scope + value: read + auth: + type: basic + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Access Token/Refresh Token Flow.yml b/bruno/Shark.OAuth2.0/Access Token/Refresh Token Flow.yml new file mode 100644 index 0000000..bbd64ea --- /dev/null +++ b/bruno/Shark.OAuth2.0/Access Token/Refresh Token Flow.yml @@ -0,0 +1,50 @@ +info: + name: Refresh Token Flow + type: http + seq: 3 + +http: + method: POST + url: "{{HostUri}}/token/" + body: + type: form-urlencoded + data: + - name: grant_type + value: refresh_token + - name: client_id + value: "{{ClientIdPermanent}}" + - name: refresh_token + value: "{{RefreshToken}}" + - name: redirect_uri + value: https://oauthdebugger.com/debug + - name: scope + value: offline_access read add update delete openid profile email address phone + auth: + type: basic + username: "{{ClientIdPermanent}}" + password: "{{ClientSecretPermanent}}" + +runtime: + scripts: + - type: after-response + code: "// Parse the JSON response body\r + + let responseData = res.getBody();\r + + \r + + // Set the 'RefreshToken' from the response as a collection variable\r + + bru.setVar(\"RefreshToken\", responseData.refresh_token);\r + + \r + + // Set the 'AccessToken' from the response as a collection variable\r + + bru.setVar(\"AccessToken\", responseData.access_token);" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Access Token/Revoke Access Token.yml b/bruno/Shark.OAuth2.0/Access Token/Revoke Access Token.yml new file mode 100644 index 0000000..40e8141 --- /dev/null +++ b/bruno/Shark.OAuth2.0/Access Token/Revoke Access Token.yml @@ -0,0 +1,25 @@ +info: + name: Revoke Access Token + type: http + seq: 9 + +http: + method: POST + url: "{{HostUri}}/revoke" + body: + type: form-urlencoded + data: + - name: token + value: "{{AccessToken}}" + - name: token_hint + value: access_token + auth: + type: basic + username: "{{ClientIdPermanent}}" + password: "{{ClientSecretPermanent}}" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Access Token/Revoke Refresh Token.yml b/bruno/Shark.OAuth2.0/Access Token/Revoke Refresh Token.yml new file mode 100644 index 0000000..5f32b3d --- /dev/null +++ b/bruno/Shark.OAuth2.0/Access Token/Revoke Refresh Token.yml @@ -0,0 +1,25 @@ +info: + name: Revoke Refresh Token + type: http + seq: 10 + +http: + method: POST + url: "{{HostUri}}/revoke" + body: + type: form-urlencoded + data: + - name: token + value: "{{RefreshToken}}" + - name: token_hint + value: refresh_token + auth: + type: basic + username: "{{ClientIdPermanent}}" + password: "{{ClientSecretPermanent}}" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Access Token/Token.yml b/bruno/Shark.OAuth2.0/Access Token/Token.yml new file mode 100644 index 0000000..9b3be41 --- /dev/null +++ b/bruno/Shark.OAuth2.0/Access Token/Token.yml @@ -0,0 +1,44 @@ +info: + name: Token + type: http + seq: 2 + +http: + method: POST + url: "{{HostUri}}/token/" + body: + type: form-urlencoded + data: + - name: grant_type + value: authorization_code + - name: client_id + value: "{{ClientIdPermanent}}" + - name: code + value: "{{AuthorizeCode}}" + - name: redirect_uri + value: https://oauthdebugger.com/debug + - name: scope + value: offline_access read add update delete openid profile email address phone + auth: + type: basic + username: "{{ClientIdPermanent}}" + password: "{{ClientSecretPermanent}}" + +runtime: + scripts: + - type: after-response + code: |- + // Parse the JSON response body + let responseData = res.getBody(); + + // Set the 'RefreshToken' from the response as a collection variable + bru.setVar("RefreshToken", responseData.refresh_token); + + // Set the 'AccessToken' from the response as a collection variable + bru.setVar("AccessToken", responseData.access_token); + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Access Token/folder.yml b/bruno/Shark.OAuth2.0/Access Token/folder.yml new file mode 100644 index 0000000..9f8433d --- /dev/null +++ b/bruno/Shark.OAuth2.0/Access Token/folder.yml @@ -0,0 +1,25 @@ +info: + name: Access Token + type: folder + seq: 1 + +request: + auth: + type: oauth2 + flow: authorization_code + authorizationUrl: https://localhost:7000/login?returnurl=authorize%2f%3fresponse_type%3dcode%26client_id%3dclient-1%26redirect_uri%3dhttps%253a%252f%252flocalhost%253a9001%252fcallback%26state%3dd743f82481cb406b91b8ec540f2d53e0 + accessTokenUrl: https://localhost:7000/token + callbackUrl: https://localhost:9001/callback + credentials: + clientId: "{{ClientIdPermanent}}" + clientSecret: "{{ClientSecretPermanent}}" + placement: basic_auth_header + state: da150dde94be049ee86e8adf876f4b426 + pkce: + disabled: true + tokenConfig: + placement: + header: "" + settings: + autoFetchToken: true + autoRefreshToken: false diff --git a/bruno/Shark.OAuth2.0/Client Registration/Client Delete.yml b/bruno/Shark.OAuth2.0/Client Registration/Client Delete.yml new file mode 100644 index 0000000..72395d7 --- /dev/null +++ b/bruno/Shark.OAuth2.0/Client Registration/Client Delete.yml @@ -0,0 +1,17 @@ +info: + name: Client Delete + type: http + seq: 4 + +http: + method: DELETE + url: "{{HostUri}}/register/{{ClientId}}" + auth: + type: bearer + token: "{{RegistrationAccessToken}}" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Client Registration/Client Read.yml b/bruno/Shark.OAuth2.0/Client Registration/Client Read.yml new file mode 100644 index 0000000..d406f36 --- /dev/null +++ b/bruno/Shark.OAuth2.0/Client Registration/Client Read.yml @@ -0,0 +1,17 @@ +info: + name: Client Read + type: http + seq: 3 + +http: + method: GET + url: "{{HostUri}}/register/{{ClientId}}" + auth: + type: bearer + token: "{{RegistrationAccessToken}}" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Client Registration/Client Register.yml b/bruno/Shark.OAuth2.0/Client Registration/Client Register.yml new file mode 100644 index 0000000..855c048 --- /dev/null +++ b/bruno/Shark.OAuth2.0/Client Registration/Client Register.yml @@ -0,0 +1,59 @@ +info: + name: Client Register + type: http + seq: 1 + +http: + method: POST + url: "{{HostUri}}/register" + headers: + - name: Content-Type + value: application/json + body: + type: json + data: "{\r + + \ \"redirect_uris\": [\r + + \ \"https://localhost:9001/callback\"\r + + \ ],\r + + \ \"token_endpoint_auth_method\": \"client_secret_basic\",\r + + \ \"grant_types\": \"authorization_code\",\r + + \ \"response_types\": \"code\",\r + + \ \"client_name\": \"client-2\",\r + + \ \"scope\": \"read\",\r + + \ \"audience\": \"http://protected-resource-dev.com\"\r + + }" + +runtime: + scripts: + - type: after-response + code: "// Parse the JSON response body\r + + let responseData = res.getBody();\r + + \r + + // Set the 'ClientId' from the response as a collection variable\r + + bru.setVar(\"ClientId\", responseData.client_id);\r + + \r + + // Set the 'ClientId' from the response as a collection variable\r + + bru.setVar(\"RegistrationAccessToken\", responseData.registration_access_token);" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Client Registration/Client Update.yml b/bruno/Shark.OAuth2.0/Client Registration/Client Update.yml new file mode 100644 index 0000000..49cdd5a --- /dev/null +++ b/bruno/Shark.OAuth2.0/Client Registration/Client Update.yml @@ -0,0 +1,47 @@ +info: + name: Client Update + type: http + seq: 2 + +http: + method: PUT + url: "{{HostUri}}/register/{{ClientId}}" + headers: + - name: Content-Type + value: application/json + body: + type: json + data: "{\r + + \ \"redirect_uris\": [\r + + \ \"https://localhost:9001/callback\",\r + + \ \"https://localhost:9001/callback_\"\r + + \ ],\r + + \ \"token_endpoint_auth_method\": \"client_secret_basic\",\r + + \ \"grant_types\": \"authorization_code\",\r + + \ \"response_types\": \"code\",\r + + \ \"client_name\": \"client-2\",\r + + \ \"client_id\": \"{{ClientId}}\",\r + + \ \"scope\": \"read add update delete\",\r + + \ \"audience\": \"http://protected-resource-pp.com\"\r + + }" + auth: + type: bearer + token: "{{RegistrationAccessToken}}" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Client Registration/folder.yml b/bruno/Shark.OAuth2.0/Client Registration/folder.yml new file mode 100644 index 0000000..4e2d6c5 --- /dev/null +++ b/bruno/Shark.OAuth2.0/Client Registration/folder.yml @@ -0,0 +1,7 @@ +info: + name: Client Registration + type: folder + seq: 2 + +request: + auth: inherit diff --git a/bruno/Shark.OAuth2.0/Configuration/OpenID Configuration JWKS.yml b/bruno/Shark.OAuth2.0/Configuration/OpenID Configuration JWKS.yml new file mode 100644 index 0000000..264110d --- /dev/null +++ b/bruno/Shark.OAuth2.0/Configuration/OpenID Configuration JWKS.yml @@ -0,0 +1,14 @@ +info: + name: OpenID Configuration JWKS + type: http + seq: 2 + +http: + method: GET + url: "{{HostUri}}/.well-known/openid-configuration/jwks" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Configuration/OpenID Configuration.yml b/bruno/Shark.OAuth2.0/Configuration/OpenID Configuration.yml new file mode 100644 index 0000000..7ebfc95 --- /dev/null +++ b/bruno/Shark.OAuth2.0/Configuration/OpenID Configuration.yml @@ -0,0 +1,14 @@ +info: + name: OpenID Configuration + type: http + seq: 1 + +http: + method: GET + url: "{{HostUri}}/.well-known/openid-configuration" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/Configuration/folder.yml b/bruno/Shark.OAuth2.0/Configuration/folder.yml new file mode 100644 index 0000000..bf58c10 --- /dev/null +++ b/bruno/Shark.OAuth2.0/Configuration/folder.yml @@ -0,0 +1,7 @@ +info: + name: Configuration + type: folder + seq: 4 + +request: + auth: inherit diff --git a/bruno/Shark.OAuth2.0/User Info/User Info Post.yml b/bruno/Shark.OAuth2.0/User Info/User Info Post.yml new file mode 100644 index 0000000..94cbb20 --- /dev/null +++ b/bruno/Shark.OAuth2.0/User Info/User Info Post.yml @@ -0,0 +1,17 @@ +info: + name: User Info Post + type: http + seq: 2 + +http: + method: POST + url: "{{HostUri}}/userinfo" + auth: + type: bearer + token: "" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/User Info/User Info.yml b/bruno/Shark.OAuth2.0/User Info/User Info.yml new file mode 100644 index 0000000..863daaa --- /dev/null +++ b/bruno/Shark.OAuth2.0/User Info/User Info.yml @@ -0,0 +1,17 @@ +info: + name: User Info + type: http + seq: 1 + +http: + method: GET + url: "{{HostUri}}/userinfo" + auth: + type: bearer + token: "" + +settings: + encodeUrl: true + timeout: 0 + followRedirects: true + maxRedirects: 5 diff --git a/bruno/Shark.OAuth2.0/User Info/folder.yml b/bruno/Shark.OAuth2.0/User Info/folder.yml new file mode 100644 index 0000000..ab4290f --- /dev/null +++ b/bruno/Shark.OAuth2.0/User Info/folder.yml @@ -0,0 +1,7 @@ +info: + name: User Info + type: folder + seq: 3 + +request: + auth: inherit diff --git a/bruno/Shark.OAuth2.0/opencollection.yml b/bruno/Shark.OAuth2.0/opencollection.yml new file mode 100644 index 0000000..012cb20 --- /dev/null +++ b/bruno/Shark.OAuth2.0/opencollection.yml @@ -0,0 +1,48 @@ +opencollection: 1.0.0 + +info: + name: Shark.OAuth2.0 +config: + proxy: + inherit: true + config: + protocol: http + hostname: "" + port: "" + auth: + username: "" + password: "" + bypassProxy: "" + +request: + variables: + - name: HostUri + value: https://localhost:7000 + - name: ClientIdPermanent + value: client-1 + - name: ClientSecretPermanent + value: client-secret-01 + - name: DeviceClientId + value: device-client-1 + - name: DeviceClientSecretPermanent + value: client-secret-02 + - name: ClientId + value: f8cc510d-2d65-4f36-b188-1e9f5e0c61ed + - name: RegistrationAccessToken + value: JwYLZwXxZsDhqyaUoQxoDiDYxFEsuaHqxnsrCLyJzO + - name: State + value: 448193cf742745e4a71213d54a11aea1 + - name: AuthorizeCode + value: "" + - name: AccessToken + value: "" + - name: RefreshToken + value: "" + - name: DeviceCode + value: "" +bundled: false +extensions: + bruno: + ignore: + - node_modules + - .git diff --git a/src/Shark.AuthorizationServer.Repositories.InMemory/Data/clients.json b/src/Shark.AuthorizationServer.Repositories.InMemory/Data/clients.json index 0a4be3a..8adb5bf 100644 --- a/src/Shark.AuthorizationServer.Repositories.InMemory/Data/clients.json +++ b/src/Shark.AuthorizationServer.Repositories.InMemory/Data/clients.json @@ -7,7 +7,7 @@ "ClientIdIssuedAt": 1728814710, "ClientSecretExpiresAt": 0, "ClientType": 2, - "RedirectUris": [ "https://localhost:9001", "https://localhost:9001/callback", "https://oauth.pstmn.io/v1/callback" ], + "RedirectUris": [ "https://localhost:9001", "https://localhost:9001/callback", "https://oauth.pstmn.io/v1/callback", "https://oauthdebugger.com/debug" ], "GrantTypes": [ "authorization_code", "refresh_token", "implicit", "password", "client_credentials" ], "ResponseTypes": [ "code", "token" ], "TokenEndpointAuthMethod": "client_secret_basic",