城里的信使与通行证
一座城里有座档案馆。居民阿林想请一位信使,代她去取一本指定的册子。她不愿把家门钥匙交给信使,于是来到城中的签发处,请签发人另开一张有范围、有期限的通行证。
最初,签发人只问信使:“办好之后送到哪里?”有人趁乱改了地址,信件便被送进一条陌生小巷。后来,签发处只认事先登记的收件地址,也不允许登记过的门牌再把信随便转走。
接着,又有人捡到半路遗失的取件凭条,跑去冒领。签发人想了个办法:信使出发前先留下一道只能由他解开的印记;回来取证时,要证明自己知道对应的秘密。凭条即使被别人捡到,也不能单独换到通行证。
城里还有好几家签发处。于是信使在出发时记下自己选择的是哪一家;回来时不能因为门牌相似,就把某一家的凭条交给另一家。档案馆也只接受写给自己的通行证,而且只开放证上写明的册子。
这时阿林才看明白:安全不靠一张看上去精美的纸,而靠每一步都能回答“这是谁发起的、由谁签发、交到哪里、能做什么”。这就是我们理解 OAuth 授权安全的起点。
故事是理解工具,不是协议流程或密码学描述。PKCE 的秘密由客户端生成和保存,授权服务器验证证明;它不是用户密码,也不代替其他安全检查。