Я пытаюсь отправить заголовок авторизации в клиенте apollo и всегда получаю пустой заголовок в серверной части сервера apollo
код клиента
import React, { Component } from "react";
import { I18nManager } from "react-native";
// import { } from "apollo-client";
import { ApolloClient, HttpLink, InMemoryCache } from "apollo-boost";
import { ApolloProvider } from "react-apollo";
import { AsyncStorage } from "react-native";
import Navigator from "./Navigator";
import { DATABASE_URL } from "./constants";
const App = () => {
const client = new ApolloClient({
link: new HttpLink({ uri: DATABASE_URL }),
cache: new InMemoryCache(),
request: async operation => {
const token = await AsyncStorage.getItem("auth-token");
operation.setContext({
headers: {
authorization: token
}
});
},
onError: ({ networkError, graphQLErrors }) => {
console.log("graphQL Error", graphQLErrors);
console.log("network Error", networkError);
}
});
I18nManager.forceRTL(true);
return (
<ApolloProvider client={client}>
<Navigator />
</ApolloProvider>
);
};
export default App;
, и это код серверагде я пытаюсь получить доступ к значению заголовка
const context = ({ req }) => {
const token = req.headers.authorization || "";
console.log("auth token", token);
return token;
};
module.exports = new ApolloServer({
typeDefs,
resolvers,
playground: true,
introspection: true,
context
});
я всегда получаю это сообщение об ошибке, когда пытаюсь запустить мутацию, требующую аутентификации заголовка GraphQL error: jwt must be provided
edit: это однокода решателя, где я пытаюсь получить токен
function addEdit(root, { newData, procedureID, editType }, { token }) {
let userID = "";
console.log(token);
try {
userID = jwt.verify(token, secret);
console.log(userID);
} catch (error) {
console.log("error");
return error;
}
console.log("id", userID);
const edit = new Edit({ newData, userID, procedureID, editType });
return edit
.save()
.then(() => {
return {
success: true
};
})
.catch(error => {
return {
success: false,
error
};
});
}