前面几篇我们写的所有接口,有一个共同的问题:谁都能调。不管是 /api/profile 还是 /api/orders,任何人拿到 URL 就能直接请求,拿到数据。
现实中显然不行。用户的订单、个人信息、后台管理操作,这些接口必须登录之后才能访问。
所以我们需要解决一个问题:怎么知道这个请求是谁发的?
这就是认证(Authentication)要干的事——验证身份。你在各种网站上输入用户名密码点击登录,本质上就是在完成认证。
还有一个容易混淆的概念叫鉴权(Authorization),它解决的是"你能干什么"——比如普通用户不能删除别人的账号,只有管理员才行。认证在前,鉴权在后,先确认你是谁,再决定你能做什么。鉴权的内容放在下一篇单独讲,本篇只聚焦认证。