mongodb - 使用 Axios 连接到 MongoDB Realm GraphQL 端点时如何避免 CORS 问题?

标签 mongodb mongodb-atlas mongodb-realm

我在 MongoDB Atlas 中有一个测试数据库。使用 MongoDB Realm 服务,我已经能够为数据库设置 GraphQL 端点。

我可以使用他们的沙箱 (GraphiQL) 在内部运行查询。

graphiql

配置 API key 身份验证提供程序后...

api key

allow request origins

...我能够从 Postman 外部运行查询,调用 https://realm.mongodb.com/api/client/v2.0/app/<MY_APP_ID>/graphql .

postman

但是,尝试使用 axios 进行相同的调用...

await axios({
  method: 'POST',
  url:
    'https://realm.mongodb.com/api/client/v2.0/app/<MY_APP_ID>/graphql',
  headers: {
    apiKey: '<MY_API_KEY>',
    'Content-Type': 'application/json',
  },
  data: {
    query: `
      {
        item {
          _id
          name
          description
        }
      }
    `
  }
})

...给出 CORS 错误。

cors error

是否需要在 Realm 中配置某些内容或缺少 header 才能允许从浏览器对 GraphQL 端点进行外部访问?

最佳答案

发现 Task Tracker (web) tutorial 后在 MongoDB Realm 文档中我意识到了这个问题。我需要使用 Realm javascript SDK 使用我的应用程序 ID 和身份验证提供程序登录 Realm。

您可以使用在 Realm 仪表板中启用的任何身份验证提供程序(用户名/密码、API key 、Google 等),但它们都会在登录时返回单个不记名 token 。此不记名 token 允许跨GraphQL 端点的域查询。

我也崩溃了,决定安装 Apollo 客户端来完成与端点的所有通信。我最终实现的 React 解决方案的来源可以是 found here 。它使用 RealmApp 与 Realm 进行通信,并使用 RealmApolloProvider 使用正确的 Realm 身份验证 token 与 GraphQL 进行通信。

关于mongodb - 使用 Axios 连接到 MongoDB Realm GraphQL 端点时如何避免 CORS 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63732978/

相关文章:

node.js - Mongoose 模式如何添加数组

mongodb - 如何在 mongo-go-driver 中使用 “Let” 聚合选项?

azure - MongoDB Atlas Credit 到底是什么?

MongoDB Atlas 无服务器数据库 |无服务器实例成本 | RPU成本解释

mongoDB查询获取所有未被用户关注的用户

react-native - 如何在完全离线时使用 MongoDB Synced Realm 数据库的本地副本?

javascript - 在jade中打印数据库的特定结果

node.js - Mongoose 可选的搜索查询参数?