跳转到主要内容
面向你 Mintlify 组织的私有认证适用于所有套餐。密码认证需要 Pro 或 Enterprise 方案。OAuth 和 JWT 认证需要 Enterprise 方案。
用户必须先登录才能访问你的内容。 你可以为所有页面启用完整认证,也可以启用部分认证,将部分页面设为公开、其他页面要求认证。 认证仅适用于托管在自定义域名或 Mintlify 子域名上的站点。例如,docs.example.com 或 example.mintlify.site。使用自定义子路径的站点不支持认证。例如,example.com/docs。 开启认证时,你可以删除现有的预览部署,否则这些预览将继续保持公开访问。请参阅开启认证时的现有预览。 若要在保持页面公开的同时识别访客,请使用个性化。个性化支持自定义子路径,并且可以在访客查看页面之前无需完成认证的情况下预填 API 操作台的输入。

选择认证方式

使用下方对比表来选择适合你使用场景的认证方式。请参见功能可用性 了解每种方式如何与其他 Mintlify 功能协同工作。

配置认证

密码认证仅提供访问控制,不支持用户级功能,例如基于用户组的访问控制或 API 操作台中的预填数据。

密码前提条件

  • 你的安全策略允许在多个用户之间共享密码。

密码设置

1

创建密码。

  1. 在控制台中,前往 Access。
  2. 将 Visibility 设置为 Private。
  3. 将 Method 设置为 Password。
  4. 输入一个安全的密码。
  5. 点击 Save。
保存后,你的网站会重新部署。部署完成后,任何访问你站点的用户都必须输入该密码才能访问你的内容。
2

分发访问权限。

以安全方式将密码和文档 URL 分享给获授权的用户。

密码示例

你将文档托管在 docs.foo.com,只需要基础访问控制,而不需要跟踪单个用户。你希望阻止公众访问,同时保持设置简单。在控制台中创建一个强密码,并将凭证分享给获授权的用户。

公开页面

在使用认证时,所有页面默认都需要通过认证才能访问。你可以在页面或分组级别通过 public 属性将特定页面设置为无需认证即可访问。

单个页面

要将页面设为公开,请在该页面的 frontmatter 中添加 public: true。
Public page example

页面分组

要将某个分组中的所有页面设为公开,请在 docs.json 的 navigation 对象中,该分组名称下添加 "public": true。
Public group example

使用 groups 控制访问

当你使用 OAuth 或 JWT (JSON Web Token) 进行认证时,可以将特定页面仅限于某些用户组访问。若希望不同用户根据其角色或属性查看不同内容,这将非常有用。 通过在认证过程中传递的用户数据来管理 groups。详见 用户数据格式。
Example user info
使用 frontmatter 中的 groups 属性来指定哪些 groups 可以访问特定页面。
Example page restricted to the admin group
用户必须至少属于所列的一个 groups 才能访问该页面。如果用户在不具备所需分组的情况下尝试访问页面,将会收到 404 错误。 要按登录状态或分组显示或隐藏页面的部分内容,请使用 visibility 组件。可见性规则仅在浏览器中隐藏内容,因此对于敏感内容,请使用页面级 groups。

groups 如何与公共页面配合使用

  • 默认情况下,所有页面都需要认证。
  • 具有 groups 属性的页面仅对属于这些 groups 的已认证用户可访问。
  • 没有 groups 属性的页面对所有已认证用户可访问。
  • 具有 public: true 且没有 groups 属性的页面对所有人可访问。

用户数据格式

当使用 OAuth 或 JWT 认证,或独立启用个性化时,你的系统会返回用户数据,用于控制会话时长、基于用户组成员关系的访问控制,以及内容个性化。
string
JWT 认证时必填。 你的文档站点的主机名。该字符串必须与你部署文档的 domain 完全一致。Mintlify 会验证 JWT 的 host 是否与发起请求的 host 匹配,以防止令牌在不同站点之间被重复使用。
number
会话过期时间,以自 epoch 起算的秒数表示。当当前时间超过该值时,Mintlify 会让已存储的用户数据过期。访客必须重新完成认证或再次经过识别流程才能刷新该数据。
对于 JWT: 这不同于 JWT 的 exp 声明,后者用于决定 JWT 何时被视为无效。出于安全考虑,应将 JWT 的 exp 声明设置为较短的时长 (10 秒或更少) 。使用 expiresAt 来表示实际会话时长 (从数小时到数周) 。
string[]
用户所属用户组的列表。在使用认证时,frontmatter 中带有匹配 groups 的页面对该用户可访问。在仅启用个性化(独立于认证)时,用户组只控制页面和内容的可见性,但不会限制通过直接 URL 访问页面。示例:具有 groups: ["admin", "engineering"] 的用户可以匹配标记为 admin 或 engineering 用户组的内容。
Record<string, any>
可在 MDX 页面中通过 user 变量访问的自定义数据,用于个性化内容。
object
使用用户特定的值预填 API 操作台中的字段。当用户完成认证后,这些值会填充到 API 操作台中对应的输入字段。用户可以覆盖预填的值,其修改会持久保存在本地存储中。Mintlify 只会应用与当前端点的安全方案匹配的值。

功能可用性

启用认证后,部分功能的行为会有所不同,或可能不可用。