多用户neo4j graphql

628mspwn  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(155)

我们开始使用@neo4j/graphql在我们的neo4j图形数据库上创建一个graphql。
唯一的问题是,根据入门示例,只能使用单个用户(驱动程序)初始化Apollo Server。

const driver = neo4j.driver(
    "bolt://localhost:7687",
    neo4j.auth.basic("neo4j", "password")
);

const neoSchema = new Neo4jGraphQL({ typeDefs, driver });

这会导致RBAC方法出现问题,因为我们尝试为每个租户创建一个用户并拒绝交叉读取。
是否有一种方法可以使用多个驱动程序(每个用户),以便我们可以将每个请求Map到不同的用户?

ua4mk5z4

ua4mk5z41#

我想我找到了问题的答案...
我们可以使用上下文驱动程序方法,而不是为服务器初始化提供驱动程序(用户
它看起来像这样

neoSchema.getSchema().then((schema) => {
    const server = new ApolloServer({
        schema,
        context: ({ req }) => ({ req, some-function-to-extract-driver-from-req }),
    });
});

相关问题