Tengo un servidor express en el que estoy usando express-graphql . También me estoy autenticando con passport y passport-google-oauth20 .
Estoy configurando mi graphQl sin el contexto:
router.use(graphqlHTTP({ schema, graphiql: true })); Lo que significa que la request se pasa a mi resolver como context .
const rootResolvers = { Query: { hello: (obj, args, context) => { console.log(context.headers.cookie); return "hello" } } }; Puedo ver la cookie de la solicitud. ¿Cómo se utilizan las cookie que llegan a deserialize al usuario? El passport generalmente hace esto por mí, pero en este caso necesito llamar a la función de deserialize fuera del ciclo de vida del passport . ¿Cómo hago esto?
Hay un user adjunto a la request y ya está deserialized . Dentro del resolver , todo lo que se necesita hacer es acceder al user :
const rootResolvers = { Query: { hello: (obj, args, context) => { console.log(context.user); return "hellllo" } } };Y ahora puedes usarlo de la forma que quieras.