1. Instead of “auth”, we should say “permissions” and “login” (ntietz.com)
计算机系统普遍存在的“auth”系统存在概念混淆问题。“auth”一词既可指“认证”(authentication),也可指“授权”(authorization),这种模糊性导致术语使用不清、沟通困难,并可能引发不良的抽象设计。
现有解决方案“authn/authz”仍不理想:它们生硬难记、容易混淆,且无法从根本上解决问题。更关键的是,该术语暗示两个概念紧密相关,易诱使开发者将其合并处理,但实际上认证(验证身份)和授权(设定访问权限)是本质不同的问题,应区别对待。
作者建议使用更清晰直观的术语:
- 登录(login):作为名词指访问凭证,动词形式“log in”表示验证身份的过程。
- 权限(permissions):指代授权机制,动词可用“检查权限”(check permissions)。
这些术语优势明显:
- 普适易懂:几乎所有用户都理解“登录”和“权限”概念,无需额外解释。
- 明确区分概念:清晰划分认证与授权,避免因术语相似而被迫合并模块。
- 改善设计:开发者可更合理地决定是否将二者结合,而非被术语暗示所引导。