https://blog.morizyun.com/javascript/typescript-tutorial-firebase-auth-graphql-react.html
import ApolloClient, { InMemoryCache } from "apollo-boost"; const token = await auth.currentUser.getIdToken(true); const client = new ApolloClient({ cache: new InMemoryCache(), headers: { token: token }, uri: "http://localhost:3000/graphql" });
Before verifying the token, you need to initialize App.
// Firebase
firebaseAdmin.initializeApp({
credential: firebaseAdmin.credential.cert({
projectId: FIREBASE_PROJECT_ID,
clientEmail: FIREBASE_CLIENT_EMAIL,
privateKey: FIREBASE_PRIVATE_KEY
}),
databaseURL: FIREBASE_DATABASE_URL
});
After then, please set the token of headers to GraphQL context.
graphqlExpress((req, res) => {
const context = createExpressContext(
{
firebaseToken: req.headers.token
},
res
);
return {
schema,
context
};
})
Now, your GraphQL server can confirm the token in resolvers.
const validateAuthorization = async (token: string) => {
await firebaseAdmin.auth().verifyIdToken(token);
};
Comments
Post a Comment