Apollo-link: Funktionsanfrage: Anfrage vor dem Senden transformieren

Erstellt am 17. Nov. 2017  ·  4Kommentare  ·  Quelle: apollographql/apollo-link

Ich versuche, die Hawk-Authentifizierung für meinen graphql-Endpunkt zu implementieren. Dazu benötige ich Zugriff auf die Request-Optionen und aktualisiere die Authorization Headers.

Derzeit gibt es keine Möglichkeit, auf die Daten zuzugreifen / diese zu aktualisieren, bevor die Anfrage ausgeführt wird. Wäre schön wenn es welche gäbe. Da ich die eigentliche Anfrage (einschließlich der endgültigen Nutzlast) benötige, um die Header zu berechnen, scheint ein MiddlewareLink nicht zu funktionieren.

help wanted

Alle 4 Kommentare

@steffenmllr whoa! Das habe ich noch nie gesehen!

Ja, ich denke, das wäre eine großartige Ergänzung zum http-Link-Paket. Es würde auch viele andere Funktionen ermöglichen. Wären Sie bereit für eine PR, um dies hinzuzufügen?

Ich helfe Ihnen oder allen anderen, die dies hinzufügen möchten, gerne!

@steffenmllr also das ist eigentlich schon möglich! Ich werde bald einen Test machen, der es zeigt!

@jbaxleyiii tolle Neuigkeiten! Ich habe gerade erst das Linkpaket gepatcht, was funktioniert, aber eine offizielle Version wäre großartig

@steffenmllr, damit Sie ein benutzerdefiniertes fetch an den Link übergeben können, mit dem Sie die Anfrage abfangen und nach Bedarf ändern können, wenn Sie die vollständige Anfrage benötigen:

const customFetch = (uri, options) => {
  const { header } = Hawk.client.header('http://example.com:8000/resource/1?b=1&a=2', 'GET', { credentials: credentials, ext: 'some-app-data' });
  options.headers.Authorization = header;
  return fetch(uri, options);
};

const link = createHttpLink({ fetch: customFetch });
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen