4. GraphOS Studio 中的验证
2m

概述

现在我们已经了解了 Airlock 如何同时处理身份验证和授权,我们可以退一步检查一下一切都是否正常工作。

在本课中,我们将

  • 使用来向 添加标头并测试我们的身份验证设置。

在 GraphOS Studio 中测试一个查询

让我们从打开https://127.0.0.1:4000GraphOS Studio Sandbox.

我们将尝试一个,该查询需要一个已验证和授权的用户:检索房东的房源。此查询需要你以房东身份登录。

使用 Explorer,让我们生成一个以检索房东的房源。对于每个房源,我们将询问titlecostPerNightdescriptionphotoThumbnailnumOfBedslocationType

以下是完整的

query GetHostListings {
hostListings {
title
costPerNight
description
photoThumbnail
numOfBeds
locationType
}
}

让我们运行 ,并且呃哦!我们返回一个 AuthenticationError,未登录用户 😱

在短暂的恐慌之后,让我们思考我们缺少什么。

我们刚刚设置了 Authorization 头的服务器端处理,但我们实际上还没有 发送使用我们的请求包含那些头!因此,我们的服务器正在尝试对发送请求的用户进行身份验证,但它找不到他们的用户标记,并且它返回了适当的错误。

在 GraphOS Studio 中添加 Headers

让我们继续添加那些缺少的 Headers。

  1. 在资源管理器底部面板,打开 Headers选项卡。

  2. 单击 New header按钮。将头键设置为 Authorization,并将值设置为 Bearer user-1。(我们知道 user-1是主机!)

A screenshot of the GraphOS Studio Explorer. In the Headers tab at the bottom of the screen, there's a header called 'Authorization' with a value of 'Bearer user-1'.
Authorization: Bearer user-1

让我们再次运行 !现在我们有了正确的头,我们可以获得我们所要求的数据以及 我们需要

为了好玩,让我们检查一下如果我们询问完全相同的 ,但作为访客,比如 user-2,将会发生什么。将 Authorization头的值更改为 “Bearer user-2”,然后运行

我们收到 ForbiddenError,表示只有主机有权访问房源。但我们已以访客身份登录,所以这样很好!我们的服务器正在按预期的方式工作。

任务!

关键要点

  • 您可以在 中通过 Headers 选项卡向请求中添加标题。

结论

通过上述介绍,我们已经看到了在 上实施身份验证的第一个示例!我们了解了如何使用 HTTP 标题对用户进行身份验证,如何编写 级的授权内容,如何在 中添加标题,以及如何在 中向请求中添加标题。

如果您有兴趣更深入地了解身份验证主题,请查看以下其他资源列表。

接下来,您可以查看 中间架构设计旁支任务,或者深入了解 航海系列,了解如何利用 进行模块化。

其他资源

上一页