1. 简介
3m

概述

本支线任务展示了一个如何向 身份验证授权添加到 的示例。

许多应用程序需要某种形式的用户账户和登录。通过身份验证和授权(简称“认证”),开发者可以限制对 API 部分的访问,以便只有特定用户可以执行某些操作。

💡 注意:此支线任务仅涵盖如何在 GraphQL 服务器上实现认证。有关如何在 客户端上设置认证的更多信息,请参阅Apollo Client 认证文档。有关如何在 联合 GraphQL 架构中设置认证的更多信息,请参阅 Apollo 技术说明 或关注 Voyage II Odyssey 课程

注意:本支线任务仅涵盖如何在 服务器上实现认证。


如需了解如何在 客户端上设置认证的详细信息,请参阅 Apollo 客户端有关验证的文档


如需了解如何在 联合 架构中设置认证的详细信息,请参阅 GraphOS 路由器关于认证的文档或 [Voyage II 课程(/voyage-part2)。

必备条件

在完成此支线任务之前,您应已熟悉 升空系列中的概念,包括:

  • 使用 创建 后端
  • 使用 将前端应用连接到
  • 使用 本地运行的

您还应熟练使用命令行,以便在目录之间导航、运行命令和使用基本 Git

介绍 Airlock

在此支线任务中,我们将着眼于一个名为 Airlock的演示应用程序,一个可帮助您浏览和预订星际旅行计划的网站。

The Airlock app homepage with a list of places to book.

使用 Airlock,客人可以查找符合他们选择的日期和他们所需的床位数的房源。他们可以了解每个地方的情况和提供的设施,如果他们感兴趣,他们只需点击一下即可预订他们的住宿(当然,前提是他们的钱包里有足够的太空积分)!

房东还可以通过 Airlock 出租自己的太空套房!他们可以将自己的房源信息添加到平台中,并管理自己的预订。在每次住宿后,房客和房东可以相互留下诚实的评分和评论。

我们为什么需要授权?

Airlock 有两种用户类型:房东房客。每种类型的用户都可以执行不同类型操作。

当以房东身份登录时,你可以:

  • 创建房源信息
  • 管理房源预订
  • 给房客写评论

当以房客身份登录时,你可以:

  • 预订住宿地点
  • 给房源和房东写评论
  • 管理你的太空积分

目前,房客用户不允许创建房源信息,房东用户不允许预订住宿地点。

凭借这些业务规则,我们的 Airlock API 需要控制哪些用户能够看到并与图表中某些进行交互。这就是身份验证和授权发挥作用的地方。

  • 身份验证是确定给定用户是否已登录,并随后确定某个用户是谁。(他们是他们声称的自己。)
  • 授权是确定给定用户有权做什么或看什么。(他们有权做他们想要做的事情。)

在这个支线任务中,我们将了解 Airlock 如何处理身份验证和授权。我们首先来设置 Airlock 代码库。

设置 Airlock 代码库

要开始使用 Airlock,可以通过打开一个新的终端窗口并运行以下命令来下载代码库

git clone https://github.com/apollographql-education/side-quest-auth

后端服务器

Airlock 后端代码可在server目录中找到。这包括一个以及每个后端 REST API(可在server/services目录中找到)各自的 Express服务器。

  1. 要启动 ,请打开新的终端窗口并运行以下命令:
cd server
npm install
npm start
  1. 要启动 Airlock 用于获取数据的后端服务,请打开新的终端窗口,并运行以下命令
cd server
npm run launch
  1. 一旦你启动 和后端服务,你应该可以 Airlock 后端,方法是在 https://127.0.0.1:4000 中打开 GraphOS Studio Sandbox
任务!

前端客户端

Airlock 的前端代码可在 client 目录中找到。

  1. 要启动前端客户端,请打开另一个新终端窗口并运行以下命令
cd client
npm install
npm start
  1. 你可以在浏览器中访问 Airlock 网站,网址为 https://127.0.0.1:3000
任务!
Screenshot of the Airlock homepage

练习

拖放
 
 是检查用户是否为其自称的身份。 
 
 是检查用户是否被允许做其正在尝试做的事。

将此框中的项目拖放到上面的空白处

  • 隐私

  • 安全

  • 凭证

  • 认证

  • 授权

要点

  • 认证是确定特定用户是否已登录,进而确定某人是哪位用户。
  • 授权是确定特定用户被允许做什么或看到什么。

接下来

既然你已在计算机上启动并运行 Airlock,是时候深入了解身份验证了!

在下一课中,我们将研究 Airlock 如何对用户进行身份验证,并确认用户是否为其自称的身份。

下一步