fix: graphql authorization headers (#3136)

This commit is contained in:
Anwarul Islam
2023-06-23 00:02:23 +06:00
committed by Andrew Bastin
parent 7db3c6d290
commit 780dd8a713
7 changed files with 104 additions and 27 deletions

View File

@@ -135,12 +135,14 @@
<div v-if="authType === 'basic'">
<div class="flex flex-1 border-b border-dividerLight">
<SmartEnvInput
:environmentHighlights="false"
v-model="basicUsername"
:placeholder="t('authorization.username')"
/>
</div>
<div class="flex flex-1 border-b border-dividerLight">
<SmartEnvInput
:environmentHighlights="false"
v-model="basicPassword"
:placeholder="t('authorization.password')"
/>
@@ -148,21 +150,37 @@
</div>
<div v-if="authType === 'bearer'">
<div class="flex flex-1 border-b border-dividerLight">
<SmartEnvInput v-model="bearerToken" placeholder="Token" />
<SmartEnvInput
:environmentHighlights="false"
v-model="bearerToken"
placeholder="Token"
/>
</div>
</div>
<div v-if="authType === 'oauth-2'">
<div class="flex flex-1 border-b border-dividerLight">
<SmartEnvInput v-model="oauth2Token" placeholder="Token" />
<SmartEnvInput
:environmentHighlights="false"
v-model="oauth2Token"
placeholder="Token"
/>
</div>
<HttpOAuth2Authorization />
</div>
<div v-if="authType === 'api-key'">
<div class="flex flex-1 border-b border-dividerLight">
<SmartEnvInput v-model="apiKey" placeholder="Key" />
<SmartEnvInput
:environmentHighlights="false"
v-model="apiKey"
placeholder="Key"
/>
</div>
<div class="flex flex-1 border-b border-dividerLight">
<SmartEnvInput v-model="apiValue" placeholder="Value" />
<SmartEnvInput
:environmentHighlights="false"
v-model="apiValue"
placeholder="Value"
/>
</div>
<div class="flex items-center border-b border-dividerLight">
<span class="flex items-center">

View File

@@ -17,6 +17,7 @@
<HoppButtonPrimary
id="get"
name="get"
:loading="isLoading"
:label="!connected ? t('action.connect') : t('action.disconnect')"
class="w-32"
@click="onConnectClick"
@@ -31,7 +32,12 @@ import { GQLConnection } from "~/helpers/GQLConnection"
import { getCurrentStrategyID } from "~/helpers/network"
import { useReadonlyStream, useStream } from "@composables/stream"
import { useI18n } from "@composables/i18n"
import { gqlHeaders$, gqlURL$, setGQLURL } from "~/newstore/GQLSession"
import {
gqlAuth$,
gqlHeaders$,
gqlURL$,
setGQLURL,
} from "~/newstore/GQLSession"
const t = useI18n()
@@ -40,13 +46,18 @@ const props = defineProps<{
}>()
const connected = useReadonlyStream(props.conn.connected$, false)
const isLoading = useReadonlyStream(props.conn.isLoading$, false)
const headers = useReadonlyStream(gqlHeaders$, [])
const auth = useReadonlyStream(gqlAuth$, {
authType: "none",
authActive: true,
})
const url = useStream(gqlURL$, "", setGQLURL)
const onConnectClick = () => {
if (!connected.value) {
props.conn.connect(url.value, headers.value as any)
props.conn.connect(url.value, headers.value as any, auth.value)
platform.analytics?.logHoppRequestRunToAnalytics({
platform: "graphql-schema",