用户必须先登录才能访问你的内容。
你可以为所有页面启用完整认证,也可以启用部分认证,将部分页面设为公开、其他页面要求认证。
认证仅适用于托管在自定义域名或 Mintlify 子域名上的站点。例如,
docs.example.com 或 example.mintlify.site。使用自定义子路径的站点不支持认证。例如,example.com/docs。
开启认证时,你可以删除现有的预览部署,否则这些预览将继续保持公开访问。请参阅开启认证时的现有预览。
若要在保持页面公开的同时识别访客,请使用个性化。个性化支持自定义子路径,并且可以在访客查看页面之前无需完成认证的情况下预填 API 操作台的输入。
选择认证方式
配置认证
- 密码
- 私有认证
- OAuth 2.0
- JWT(JSON Web Token)
密码认证仅提供访问控制,不支持用户级功能,例如基于用户组的访问控制或 API 操作台中的预填数据。
密码前提条件
- 你的安全策略允许在多个用户之间共享密码。
密码设置
1
创建密码。
- 在控制台中,前往 Access。
- 将 Visibility 设置为 Private。
- 将 Method 设置为 Password。
- 输入一个安全的密码。
- 点击 Save。
2
分发访问权限。
以安全方式将密码和文档 URL 分享给获授权的用户。
密码示例
docs.foo.com,只需要基础访问控制,而不需要跟踪单个用户。你希望阻止公众访问,同时保持设置简单。在控制台中创建一个强密码,并将凭证分享给获授权的用户。公开页面
public 属性将特定页面设置为无需认证即可访问。
单个页面
public: true。
Public page example
页面分组
docs.json 的 navigation 对象中,该分组名称下添加 "public": true。
Public group example
使用 groups 控制访问
Example user info
groups 属性来指定哪些 groups 可以访问特定页面。
Example page restricted to the admin group
groups。
groups 如何与公共页面配合使用
- 默认情况下,所有页面都需要认证。
- 具有
groups属性的页面仅对属于这些 groups 的已认证用户可访问。 - 没有
groups属性的页面对所有已认证用户可访问。 - 具有
public: true且没有groups属性的页面对所有人可访问。
用户数据格式
string
JWT 认证时必填。 你的文档站点的主机名。该字符串必须与你部署文档的 domain 完全一致。Mintlify 会验证 JWT 的 host 是否与发起请求的 host 匹配,以防止令牌在不同站点之间被重复使用。
number
会话过期时间,以自 epoch 起算的秒数表示。当当前时间超过该值时,Mintlify 会让已存储的用户数据过期。访客必须重新完成认证或再次经过识别流程才能刷新该数据。
string[]
用户所属用户组的列表。在使用认证时,frontmatter 中带有匹配
groups 的页面对该用户可访问。在仅启用个性化(独立于认证)时,用户组只控制页面和内容的可见性,但不会限制通过直接 URL 访问页面。示例:具有 groups: ["admin", "engineering"] 的用户可以匹配标记为 admin 或 engineering 用户组的内容。object
使用用户特定的值预填 API 操作台中的字段。当用户完成认证后,这些值会填充到 API 操作台中对应的输入字段。用户可以覆盖预填的值,其修改会持久保存在本地存储中。Mintlify 只会应用与当前端点的安全方案匹配的值。