Skip to content

Commit 0c03676

Browse files
authored
Improve OpenAPI Securities sample and headers (#2816)
1 parent 883d10a commit 0c03676

File tree

3 files changed

+23
-18
lines changed

3 files changed

+23
-18
lines changed

.changeset/early-queens-pump.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@gitbook/react-openapi': patch
3+
---
4+
5+
Better securities sample and headers

packages/react-openapi/src/OpenAPICodeSample.tsx

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -136,34 +136,28 @@ function getSecurityHeaders(securities: OpenAPIOperationData['securities']): {
136136
switch (security[1].type) {
137137
case 'http': {
138138
let scheme = security[1].scheme;
139-
if (scheme === 'bearer') {
139+
let format = security[1].bearerFormat ?? 'YOUR_SECRET_TOKEN';
140+
141+
if (scheme?.includes('bearer')) {
140142
scheme = 'Bearer';
143+
} else if (scheme?.includes('basic')) {
144+
scheme = 'Basic';
145+
format = 'username:password';
146+
} else if (scheme?.includes('token')) {
147+
scheme = 'Token';
141148
}
142149

143150
return {
144-
Authorization: scheme + ' ' + (security[1].bearerFormat ?? '<token>'),
151+
Authorization: scheme + ' ' + format,
145152
};
146153
}
147154
case 'apiKey': {
148155
if (security[1].in !== 'header') return {};
149156

150157
const name = security[1].name ?? 'Authorization';
151-
let scheme = security[0];
152-
153-
switch (scheme) {
154-
case 'bearerAuth':
155-
scheme = 'Bearer';
156-
break;
157-
case 'token':
158-
scheme = 'Token';
159-
break;
160-
case 'basic':
161-
scheme = 'Basic';
162-
break;
163-
}
164158

165159
return {
166-
[name]: scheme + ' ' + '<apiKey>',
160+
[name]: 'YOUR_API_KEY',
167161
};
168162
}
169163
default: {

packages/react-openapi/src/OpenAPISecurities.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,16 @@ export function OpenAPISecurities(props: {
5353
function getLabelForType(security: OpenAPIV3_1.SecuritySchemeObject) {
5454
switch (security.type) {
5555
case 'apiKey':
56-
return <OpenAPISchemaName propertyName="apiKey" type="string" required />;
56+
return (
57+
<OpenAPISchemaName
58+
propertyName={security.name ?? 'apiKey'}
59+
type="string"
60+
required
61+
/>
62+
);
5763
case 'http':
5864
if (security.scheme === 'basic') {
59-
return 'Basic Auth';
65+
return <OpenAPISchemaName propertyName="Authorization" type="string" required />;
6066
}
6167

6268
if (security.scheme == 'bearer') {

0 commit comments

Comments
 (0)