创建账户与第一个站点密钥
这是三节短课中的第一节。它们将带你从一个空账户走到一个守护着真实表单的游戏挑战。
你在 BananaSeed 工作,而你站点上的联系表单正淹没在垃圾信息里:机器人和脚本化的 AI 代理日夜不停地朝它发射垃圾提交。你想让 Caputchin 站在那个表单前面,只放真人通过。
Caputchin 是这样做的。当有人打开你的联系表单时,Caputchin 会在浏览器里给他一个简短的挑战(一个简单的复选框,或一个简短的游戏)。通过它就能换得一个一次性令牌,页面会把它随提交一起发出。你的服务器随后会先用 Caputchin 核验这个令牌,然后才信任该请求。一个直接向你的端点 POST 的机器人从未通过任何挑战,因此没有有效令牌,于是你的服务器把它拒之门外。
BananaSeed 的站点是一个 React 前端,配一个运行 Express 的 Node.js 后端,所以接下来两节课会给你为这个技术栈量身写好的可用代码。同样的步骤可移植到任何框架或语言;只是语法变一变。
首先,BananaSeed 需要一个账户和一个站点密钥。大约两分钟,无需信用卡,暂时也无需安装任何东西。
你在结束时会拥有什么
- 一个 Caputchin 账户。
- 一个站点密钥,它其实是一对值:
- 一个 公钥(
cpt_pub_...),放进你的页面, - 一个 密钥(
cpt_sec_...),留在你的服务器上。
- 一个 公钥(
1. 登录(这也会创建你的账户)
前往 caputchin.com/login。没有单独的注册步骤:你用某个邮箱的第一次登录就是创建账户的那一刻。挑你喜欢的方式:
- 用邮件发送登录链接,然后点击邮件里的链接,或
- 通过 GitHub 继续,或
- 通过 Google 继续。
我们永远只读取你已验证的电子邮件地址。
进去之后,留意地址栏显示的是 /app/troops。Caputchin 直接把你放进了你的团队。
2. 打开你的个人团队
在你创建站点密钥之前,先弄清它住在哪里会有帮助。Caputchin 里几乎一切都坐落在一个 团队 之内。团队是一个工作空间,它是拥有你的站点密钥、这些密钥共享的游戏自定义、以及(在付费套餐上)你邀来协助管理的队友的那个东西。Caputchin 是有意围绕团队来构建的:一个站点密钥总是属于某个团队,而绝不直接属于你的账户,正是这一点让一整支团队日后能管理同一批密钥,而无需共享一个登录。账单与席位坐落在账户层级,在你的各个团队之上,而不在其中任何一个之内。
每个账户起步时都带一个名为 Personal 的团队,那就只有你一个人。本指南所需的就这些。当你需要更多时,你会创建共享团队并邀请成员,但下面的内容一概不变。
点击 Personal 打开它。一个团队会直接打开到它的 站点密钥,所以你就落在那里。留意地址栏:/app/troops/<id>/site-keys。你即将创建的密钥嵌套在该团队之下,这正是我们刚刚描述的那种归属关系。
3. 创建你的第一个站点密钥
点击 创建站点密钥,给它起个像 My site 这样的名字,再点击 创建。它要的就只有一个名字。
Caputchin 给你看两个值:
| 值 | 看起来像 | 放到哪里 |
|---|---|---|
| 公钥 | cpt_pub_... | 放进你的页面,在组件元素上。可安全地交付给浏览器。 |
| 密钥 | cpt_sec_... | 只放在你的服务器上。绝不要放进客户端代码。 |
留意那条横幅:“现在就复制密钥。我们不会再次显示它。” 复制密钥,把它存到你服务器能读到的地方(一个环境变量、你的密钥管理器)。公钥你随时能在该密钥的 集成 页上再看到,但密钥只显示这一次。一旦丢了,你是轮换它,而不是找回它。
一个全新的密钥还没有任何来源限制,正是这一点让你的测试页在下一节课里能本地工作。关于密钥设置的更多内容见 站点密钥。
刚刚发生了什么
| 步骤 | 在哪里 | 结果 |
|---|---|---|
| 首次登录 | 浏览器 | 你的账户已创建,一个个人团队已就绪。 |
| 创建站点密钥 | 仪表盘 | 一个给页面用的公钥,和一个给你服务器用的密钥。 |
你有了一个账户和你的第一个站点密钥,这是其他一切赖以建立的根基。干得好。🎉
下一步
你已经有了密钥。是时候把组件放到页面上,亲眼看一次真实的验证发生。
继续前往 把组件添加到你的站点。