Cookie

通过公开或签名的 Cookie 将访客数据传入你的文档

circle-info

前往我们的指南,找到一个 完整演示 关于使用 cookie 设置自适应内容。

circle-exclamation

你可以通过访客浏览器中的 cookie 将访客数据传递到你的文档中。下面是不同方法的概览。

方法
使用场景
设置难度
安全性
格式

签名 cookie gitbook-visitor-token

API 测试凭据、客户识别

需要签名和自定义域名

属性只能由后端定义

JWT

公共 cookie gitbook-visitor-public

功能标志、角色

易于设置

访客可以覆盖这些属性

JSON

要通过公共 cookie 将数据传递到 GitBook,你需要通过设置一个公共 gitbook-visitor-public cookie,从你的应用程序发送数据。

以下是一个简单的 JavaScript 示例:

import Cookies from 'js-cookie';

const cookieData = {
  isLoggedIn: true,
  isBetaUser: false,
};

Cookies.set('gitbook-visitor-public', JSON.stringify(cookieData), {
  secure: true,
  domain: '*.acme.org',
})
circle-exclamation

要更安全地将数据传递到 GitBook,你需要将数据作为 JSON Web Tokenarrow-up-right 从你的应用程序中以名为 gitbook-visitor-token 的 cookie 形式发送,并绑定到你的域名。

要进行此设置,你需要调整应用程序的登录流程,以包含以下步骤:

1

当用户登录到你的应用程序时生成 JWT

每当用户登录到你的产品时,生成一个包含你已认证用户信息中选定属性的 JWT。

2

使用站点的访客签名密钥对 JWT 进行签名

然后,确保使用站点的 访客签名密钥对 JWT 进行签名,你可以在启用自适应内容后于站点的受众设置中找到该密钥。

3

将 JWT 存储在通配符会话 cookie 中

最后,你需要将包含用户信息的已签名 JWT 存储到一个通配符会话 cookie 中 位于你的产品域名下.

例如,如果你的应用程序托管在 app.acme.org 域名之后,那么 cookie 需要创建在 .acme.org 通配符域名下。

以下是一个简单的 TypeScript 示例:

最后更新于

这有帮助吗?