Integrating with Apollo GraphQL
Using @authaction/node-sdk
Section titled “Using @authaction/node-sdk”npm install @authaction/node-sdkimport { ApolloServer } from "@apollo/server";import { startStandaloneServer } from "@apollo/server/standalone";import { createVerifier } from "@authaction/node-sdk";import { apolloContext, requireUser } from "@authaction/node-sdk/apollo";
const verifier = createVerifier({ domain, audience });const server = new ApolloServer({ typeDefs, resolvers });
await startStandaloneServer(server, { context: apolloContext(verifier), // injects { user: TokenPayload | null }});// In resolversconst resolvers = { Query: { protectedMessage(_parent, _args, context) { const user = requireUser(context); // throws UNAUTHENTICATED if missing return { message: "Protected", sub: user.sub }; }, },};Full SDK reference: github.com/authaction/authaction-node-sdk