Ensure context parser is configured to perform authentication and add user info to context
const getEnveloped = envelop({
plugins: [
...
useExtendContext(req => ({
user: someHowAuthenticateUser(req.get("authorization"))),
})),
...
]
});
or
getEnveloped({
user: someHowAuthenticateUser(req.get("authorization"))),
});
Add plugin to envelop
import { authZEnvelopPlugin } from "@graphql-authz/envelop-plugin";
const getEnveloped = envelop({
plugins: [
...
authZEnvelopPlugin({ rules })
...
]
});
Apply directive transformer to schema
import { authZDirective } from '@graphql-authz/directive';
import { authZEnvelopPlugin } from "@graphql-authz/envelop-plugin";
const { authZDirectiveTransformer } = authZDirective();
const transformedSchema = authZDirectiveTransformer(schema);
const getEnveloped = envelop({
plugins: [
useSchema(transformedSchema),
authZEnvelopPlugin({ rules })
...
]
});
Pass additional parameter authSchema
to authZEnvelopPlugin
import { authZEnvelopPlugin } from "@graphql-authz/envelop-plugin";
const getEnveloped = envelop({
plugins: [
...
authZEnvelopPlugin({ rules, authSchema })
...
]
});