0

我需要获取身份验证标头并将其传递给我的获取。我找到了几种不同的方法来做到这一点,但想要访问上下文以便我可以抓住它。我看到的所有文档都与生成模式的打字稿方式无关。

所以问题是某人如何在您的查询/突变中获得标头值?

4

1 回答 1

0

所以我从来没有在网上找到答案,但决定我应该发布这个,以防其他人遇到这个问题。

首先,您需要设置将要使用的上下文

const schema = await buildSchema({
    resolvers: [
        YourResolver
    ]
});

const apolloServer = new ApolloServer({
    schema,
    context: ({ req }) => {
        // this will return something you can pick up using @Ctx("param")
        const someValue: string = req.headers["some-value"] as string;
        var obj = { 
            value: someValue
        };
        return obj;
    }
});

其次,您需要参考它

@Query(() => string, { nullable: true })
async Get (
    @Ctx("value") val: string
): Promise<string> {
    return new Promise<string>((res:any) => { res(value); });
}

适用于查询、突变和字段解析器。没有参数应该返回整个对象,没有测试过。

于 2021-03-24T15:57:14.137 回答