项目隔离

项目是你工作区内的一个产品:一个站点、一家商店、一个应用。它的内容、用户、文件、API 密钥、机密和登录域名都属于它自己,两个项目之间不共享任何内容。

一个密钥,一个项目

API 密钥在项目内创建,并且只服务于该项目。数据库不会存储没有项目的公开密钥或机密密钥。请求到达时,项目是从密钥自己的记录中读取的,绝不来自请求头,指明的项目与其密钥不同的请求会被拒绝。

自定义 API 域名不会改变这一点。密钥仍然决定项目,在属于另一个项目的域名上出示的密钥会被拒绝。

限定在项目内的团队成员

授予某一个项目的角色,只对该项目的行有效。拥有两个站点的客户在每个站点上各得到一次授权,在一个站点上拥有的权限,无法触及另一个站点。同一个人可以是一个项目的管理员,而对下一个项目完全没有访问权限。

行规则

每张项目作用域的表,都在工作区的 id 旁带有项目的 id,其策略要求两者都与调用方的会话匹配。对于内容、用户和文件,策略还会进一步判定调用方可以看到哪些行。对于钩子、定时计划和域名这类配置,数据库保证其被限定在范围内,而更改它们的权限在请求到达时检查。

预发布和生产

Fóir 没有测试模式,也没有第二种密钥。预发布环境是第二个项目,有自己的数据和自己的密钥,一份配置文件就可以同时声明两者,并使它们保持同步。

阅读详情

认证指南解释了每种密钥、它能持有什么,以及请求如何与其项目关联。