0

認証ヘッダーを取得して、フェッチで渡す必要がありました。それを行うためのいくつかの異なる方法を見つけましたが、それを取得できるようにコンテキストにアクセスしたかったのです。私が見たすべてのドキュメントは、スキーマを生成する typescript の方法に関連していませんでした。

問題は、誰かがクエリ/ミューテーション内でヘッダー値を取得する方法です??

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); });
}

Query、Mutations、および FieldResolvers で機能します。オブジェクト全体を返すパラメータはありません。テストしていません。

于 2021-03-24T15:57:14.137 に答える