neo4j graphql 与多个用户

发布于 2025-01-09 10:12:08 字数 632 浏览 0 评论 0原文

我们开始使用 @neo4j/graphql 来构建 graphql我们的 Neo4j 图形数据库。

唯一的问题是,根据 入门 示例只能使用单个用户(驱动程序)来初始化 Apollo 服务器。

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

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

当我们尝试为每个租户创建一个用户并拒绝交叉读取时,这会导致我们的 RBAC 方法出现问题。

有没有办法使用多个驱动程序(每个用户),以便我们可以将每个请求映射到不同的用户?

We started using @neo4j/graphql to have a graphql over our neo4j graph db.

The only problem is that according to the getting started example it is only possible to init the Apollo Server with a single user (driver).

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

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

This causes an issue with our RBAC approach as we try to create a user per tenant and deny cross-reads.

Is there a way to use multiple drivers (per user) so that we can map each request to a different user?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不气馁 2025-01-16 10:12:08

我想我找到了我的问题的答案...

我们可以使用 驱动程序上下文方法

看起来像这样

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

I think I found an answer to my question...

Instead of supplying a driver (user) for the server initialization, we can use a driver in context approach

Which will look something like this

neoSchema.getSchema().then((schema) => {
    const server = new ApolloServer({
        schema,
        context: ({ req }) => ({ req, some-function-to-extract-driver-from-req }),
    });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文