es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo pasar JWT (Tokens Web JSON) para la autorización a través de una URL / enlace a Graphiql.

Me gustaría vincular mi aplicación web con GraphiQL para que los usuarios puedan utilizar GraphiQL sin necesidad de insertar manualmente el token en la sección de encabezados.

¿Cómo puedo pasar JWT (JSON Web Tokens) para la autorización desde mi aplicación a GraphiQL, por ejemplo, a través de URL, para que se establezca en la configuración de los encabezados?

Sé que existe la opción de crear una aplicación envolvente de React e inyectarla a través de fetchers, pero prefiero simplificarlo, por ejemplo, mediante una URL.

¡Gracias de antemano, aprecio mucho su experiencia!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para pasar un JWT para la autorización desde tu aplicación a GraphiQL a través de URL, primero necesitas crear un parámetro de URL para el token JWT, que puede ser añadido a la URL de GraphiQL.

    Por ejemplo, supongamos que tu token JWT está almacenado en una cookie llamada “jwtToken”. Puedes crear un parámetro de URL así:

    `http://example.com/graphql?jwtToken=YOUR_JWT_TOKEN_HERE`

    Luego, en tu función de configuración de GraphiQL, puedes recuperar el token JWT desde el parámetro de URL utilizando la API URLSearchParams:

    import GraphiQL from 'graphiql';
    import fetch from 'isomorphic-fetch';
    
    function graphQLFetcher(graphQLParams) {
      return fetch('/graphql', {
        method: 'post',
        headers: {
          'Authorization': 'Bearer ' + new URLSearchParams(window.location.search).get('jwtToken'),
          'Content-Type': 'application/json'
        },
        body: JSON.stringify(graphQLParams),
      }).then(response => response.json());
    }
    
    function setupGraphiQL() {
      GraphiQL({
        fetcher: graphQLFetcher,
        // otros props de GraphiQL
      }, document.getElementById('graphiql'));
    }
    

    Nota que necesitas incluir el prefijo "Bearer " en el valor del encabezado Authorization, ya que este es el formato recomendado para tokens JWT.

    Con esta configuración, el token JWT será pasado automáticamente a GraphiQL sin necesidad de que los usuarios lo inserten manualmente en la sección de encabezados.

Comments are closed.