“OAuth PKCE”,我、John Bradley(Ping)和 Naveen Agarwal(Google)被列为共同作者,[RFC 7636] 它最初被称为 OAuth SPOP(对称占有证明),但由于它扩展到不仅仅包括对称,因此被重新命名为代码交换证明密钥(PKCE,pixie = fairy),并且一直沿用至今。

该标准通过生成临时密钥并使用该密钥执行密钥持有证明 (Proof of Possession of Key),解决了 OAuth 2.0 [RFC6749] 公共客户端的代码拦截攻击漏洞。它向后兼容 RFC6749,并且易于实现,因此我认为从现在开始最好使用此标准。

爱德华多·奎罗斯先生,詹姆斯·曼格先生,布莱恩·坎贝尔先生, 迈克·琼斯,威廉·丹尼斯我们要感谢他和所有参与该标准安全方面工作的人员,以及致力于制定该标准的 OAuth 工作组、其主席、区域主管和 IETF 成员。

补充一下,OAuth PKCE已经在某公司的视频网站APP等应用中被广泛采用。

[RFC 7636] Sakimura, N.、Bradely, J. 和 N. Agarwal:OAuth 公共客户端代码交换的证明密钥,(2015/9),https://tools.ietf.org/html/rfc7636

[RFC6749] Hardt,D.:OAuth 2.0授权框架(2012),https://tools.ietf.org/html/rfc6749