← 术语图鉴

账号与鉴权

Authentication & Authorization · 也叫 登录 / 注册 / 认证 / 授权 / token

先确认"你是谁"(认证),再决定"你能做什么"(授权)。两件事,都要在后端做。

你可能会说:

  • “要不要做注册登录?AI 说很简单,几分钟就能加上。”
  • “登录之后拿到的那一长串 token 是什么?”

它是什么

注册登录看起来只是两个表单,背后要回答一串问题:密码怎么存(只存加密后的哈希)、登录后发什么凭证、凭证多久过期、谁能注册、有没有防止批量注册和暴力猜密码的措施。

一旦有了账号,很多护栏就会按账号来设:每人每天多少次、能看哪些内容。这时"注册有多容易"就决定了护栏有多牢:注册不设限,按账号的限额就能被批量注册绕过去。

判断权限必须在后端做。前端藏起一个按钮,只是看不见,不代表调不了那个接口。

打个比方

像公司门禁:刷工牌证明你是员工(认证),但工牌能不能进机房,要看它被授予了哪些门的权限(授权)。

在这个网站里

兄弟项目 E2E Review 的注册只检查用户名 2 到 20 个字、密码至少 6 位:密码用 scrypt 加密存储,登录凭证 7 天过期;但没有验证码、邀请码,也不按 IP 限流,登录接口也不限次数(第 14 课)。

容易搞混的地方

常见误解

有了登录,接口就安全了

正确理解

登录只证明"是某个账号"。账号本身能不能随便注册、每个账号能做多少事,是另外的护栏。

你可以这样告诉 AI

复制下面这段,贴给你的 AI

这个功能真的需要账号吗?如果需要:密码怎么存、登录凭证多久过期、谁能注册、怎么防批量注册和暴力猜密码、每个接口在后端怎么校验权限?逐条列出现状和缺口。

先知道

  • 后端——跑在服务器上、访客看不到的那部分程序:处理登录、读写数据、调用需要保密的接口。

接着看

  • 限流——限制一段时间内能发多少次请求,超过就先拒绝,挡住刷接口和误操作。
  • 额度——一段时间里总共能用多少:每人每天多少次、全站每天花多少钱。用完就停,等下一个周期。

在这些课里出现

相关的真实事故