设置 AWS Cognito

为访问您文档的访客设置 AWS Cognito 登录界面

要使用 AWS Cognito 为您的 GitBook 站点设置经过身份验证的访问,流程如下:

1

创建一个新的 AWS Cognito 应用

在您的 AWS 仪表板中创建一个 AWS Cognito 应用程序。

2

安装并配置 AWS Cognito 集成

安装 AWS Cognito 集成并添加所需的配置。

3

为自适应内容配置 AWS Cognito(可选)

配置 AWS Cognito 以在 GitBook 中与自适应内容配合使用。

创建一个新的 AWS Cognito 应用

转到 Cognito 中您想要的用户池,然后单击“应用集成”。记下 Cognito 域,我们需要它来配置集成。

向下滚动到底部并单击“创建应用客户端”。应用类型选择“机密客户端”。向下滚动到托管 UI 设置。在允许的回调 URL 中,输入从在空间上安装集成时 GitBook 提供的回调 URL。

继续向下滚动到“OAuth 2.0 授权类型”——确保选择了“授权码授权(Authorization code grant)”。

对于“OpenID 连接范围”,确保选择了 OpenID。

向下滚动并单击“创建应用客户端”。

单击所创建的应用客户端并记下客户端 ID 和客户端密钥(Client Secret)。

安装并配置 AWS Cognito 集成

在 GitBook 应用中导航到集成,选择“经过身份验证的访问”作为类别,然后安装 AWS Cognito 集成。

A GitBook screenshot showing the AWS Cognito integration install screen

在您的站点上安装后,转到配置并记下保存按钮上方的回调 URL。我们需要它来设置 Cognito。

打开您在其上安装该集成的空间的 Cognito 集成配置界面。

它应如下图所示:

A GitBook screenshot showing the AWS Cognito configuration screen

在客户端 ID、Cognito 域和客户端密钥字段中粘贴您从 Cognito 获取的值。

点击保存。

现在,在 GitBook 中,关闭集成模态并点击管理站点按钮。导航到 受众,选择 认证访问,并选择 Cognito 作为后端。然后,单击 更新受众。转到站点的界面并点击 发布。 该站点现在已发布在由您的 Auth0 应用控制的经过身份验证的访问后面。要试用,请点击“访问”。您将被要求使用 Cognito 登录,这将确认您的站点已通过 Auth0 发布在经过身份验证的访问后面。

为自适应内容配置 AWS Cognito(可选)

要在 GitBook 中将自适应内容与经过身份验证的访问一起使用,您需要将自定义声明包含在 Amazon Cognito 用户池生成的 ID 令牌中。

这通常通过创建一个 Cognito Lambda 触发器——具体来说是一个 预令牌生成(Pre Token Generation) Lambda——返回一个覆盖或附加自定义声明的 JSON 有效负载。 这些声明可能包括用户角色、订阅层级或与您的内容相关的任何其他元数据。

下面是一个可能的示例:

export const handler = async (event, context) => {
  // 从事件请求中检索用户属性
  const userAttributes = event.request.userAttributes;

  // 向事件响应添加其他声明
  event.response = {
    "claimsAndScopeOverrideDetails": {
      "idTokenGeneration": {},
      "accessTokenGeneration": {
        "claimsToAddOrOverride": {
          "products": ['api', 'sites', 'askAI'],
          "isBetaUser": true,
          "isAlphaUser": true,
        }
      }
    }
  };
  // 返回给 Amazon Cognito
  context.done(null, event);
};

添加后,这些键值对将包含在身份验证令牌中并传递给 GitBook,使您的站点能够根据经过身份验证的用户配置文件动态调整其内容。

最后更新于

这有帮助吗?