代替“auth”,我们应该说“permissions”和“login”

主要观点:大多数与我们交互的计算机系统都有某种认证系统,但“auth”一词含义模糊,常导致歧义及不良抽象和失败。常见的“auth”命名方式会引发对其能处理内容的不确定,虽有“authn”和“authz”的解决方案但并不理想,因其笨拙难理解且暗示认证和授权关系过近。应使用“login”(认证)和“permissions”(授权)这两个更清晰的术语,它们无需过多解释且在软件工程之外的领域也易于理解,能避免因术语导致的将两者合并的冲动,使设计更强大。
关键信息:“auth”含义至少有认证和授权两种;常见的“auth”命名易致歧义;“authn”和“authz”解决方案不理想;“login”和“permissions”更清晰;两者关系不同应分别对待;若想成为更高效的软件工程师可考虑其 coaching 服务。
重要细节:如在库名(django-allauth 为认证,go-auth 为认证)、包名(django.contrib.auth 两者都有)和公司名(auth0.com)中都有“auth”;“login”有名词和动词形式,“permissions”为名词形式,动词形式为“check permissions”;认证更精确地是证明断言,除证明自身外还可证明其他东西;文中有多处注释解释相关概念及观点。

阅读 7
0 条评论