使用探索者进行连接和身份验证
配置探索者以连接到您的 GraphQL 服务器
探索者自动尝试连接到您在设置选项卡中指定的GraphQL 服务器 的 URL。
💡 提示
当您使用探索者与云超级图 结合使用时,端点 URL 总是当前 变体 的 GraphOS 路由器 的 URL。
根据您的 GraphQL 服务器's 设置,您可能需要配置资源管理器连接以处理 CORS 需求或认证。
CORS 策略
资源管理器从您的浏览器直接发送请求到您的 GraphQL 服务器,因此您的端点可以看到来自以下域名: https://studio.apollographql.com
通常是公共端点设置 CORS 策略 以限制哪些域名可以 查询它们。如果您的端点启用了 CORS 保护,您可能需要在 CORS 策略中添加 https://studio.apollographql.com
以使用资源管理器。
为此,请在服务器的响应中包含以下头部信息
Access-Control-Allow-Origin: https://studio.apollographql.com# Include this only if your server *also* authenticates via cookies.Access-Control-Allow-Credentials: true
ⓘ 注意
如果您无法更改您的 CORS 策略,您可能能够为您的端点创建代理,并将资源管理器指向代理。浏览器会强制执行 CORS 策略,代理与您的端点通信时不会有相同的缺点。
认证
资源管理器提供通过 请求头部、 cookies 和 脚本 认证的功能。
💡 提示
如果您的图具有本选项范围之外的身份验证要求,请向[email protected]提起问题或反馈。
请求头
资源管理器的底部面板包括一个标题栏,您可以在其中设置包含在您的 操作 的HTTP请求中的标题。
标题可以包含由双大括号注入的 环境变量 的值。
例如,键为 Authorization
的标题可以有值为 Bearer {{token}}
。
Cookie
如果您的服务器使用cookie进行身份验证,您可以将端点配置为与 https://studio.apollographql.com
分享这些cookie。
要设置此功能,您的 cookie的值必须包含SameSite=None; Secure
。此外,以下CORS标题必须包含在Studio服务器的响应中:
Access-Control-Allow-Origin: https://studio.apollographql.comAccess-Control-Allow-Credentials: true
一旦配置,从 https://studio.apollographql.com
发送的请求将在您使用资源管理器运行查询时包含您域的cookie。如果您在您的域上登录,从资源管理器发出的请求也会登录。如果从您的域注销并且删除cookie,则从资源管理器发出的请求将被注销。
为Safari用户设置Cookie
Safari 13.1
和之后的版本默认阻止第三方cookie。在Safari中使用资源管理器时,它将您的服务器端点视为 GraphOS Studio 的 "第三方"。因此,Safari用户需要在Safari中打开 “设置 > 隐私” 并取消选择 “阻止跨站跟踪” 以发送带有cookie的资源管理器请求。
环境变量
资源管理器的“设置”标签包括一个用于定义环境变量的部分。在这里,您可以提供敏感信息,然后将其注入标题值、 GraphQL 变量或 脚本 中。这允许您与其他团队成员共享 操作(包括它们的标题),而不泄露这些敏感数据。
定义
您可以在资源管理器的“设置”选项卡中定义环境变量,如下所示
{"exampleToken": "tokenValue"}
如果您与团队成员共享使用环境变量的操作,则这些环境变量的值不会被共享,其他用户可以提供自己的值。
注入
您可以将 Explorer 环境变量注入到以下任何一项
头部值
通过用双大括号包围变量名,将环境变量注入到 HTTP 头部值中。例如,键为 Authorization
的头部可能有值 Bearer {{token}}
.
GraphQL 变量
通过用双大括号包围变量名,将环境变量注入到 GraphQL 变量值中,如下所示:
{"token": "{{token}}"}
自定义脚本
如果您创建了一个 预检或操作脚本,该脚本可以像这样访问环境变量的值:
const secretToken = explorer.environment.get('token');
查看探索器 脚本文档了解如何使用预审脚本进行身份验证。