理解 Authorization Code Flow with Proof Key for Code Exchange (PKCE)
这里首先解释一下 regular web app 和 public app 的意思。
- regular web app:传统的 web app,只有一个 server-side,用户使用浏览器与 server-side 交互,用户所看到的界面和所能操作的功能,均由 server-side 生成;
- public app:现代的 web app,它由两部分组成,client-side 和 server-side。典型的 public app 是 SPA 和 Native App。在 SPA (singular-page-application) 中 client-side 的代码是由 JavaScript 写成,运行在用户的浏览器中,用户所能看到的界面和交互功能均由 client-side JavaScript 提供,server-side 则主要作为提供资源服务。
Authorization Code Flow
为了更好的理解 PKCE 首先需要理解 Authorization Code Flow。
regular web apps 是 server-side app,也就是说源代码是不会暴露给外界(这里主要是跟 SPA 这种应用的对比),这种 server-side app 非常适用于 Authorization Code Flow,也就是用 Authorization Code 交换 Access Token,交换过程必须发生在 s