在授权代码授予工作流程中,应该提出什么请求来交换令牌代码?

What request should be made to exchange a code for a token in Authorization Code Grant workflow?

我正在尝试在我的后端 (BE) 应用程序中设置 Pac4j,为了配置我的 Angular 前端 (FE),我需要了解它期望的工作流程,以便正确配置后端。

我一直在阅读大量文档并浏览 Pac4j 源代码,以了解如何在不暴露客户端机密的情况下从代码中获取令牌。

所以...

  1. 我尝试登录 FE->BE(无需授权)
  2. 我收到 401
  3. 我从 401 获取 'Location'(Google auth uri)并重定向到它,提供回调 uri
  4. 我登录Google
  5. 我被重定向回带有代码的回调 uri
  6. (我向 BE 提出什么请求才能取回令牌?即不需要 client_secret 的令牌 URI 在哪里)
  7. 我使用检索到的令牌访问并继续正常使用 BE

如果您不想使用client_secret,那么您需要public客户端。我不确定 Google 是否支持 public 客户端。

恕我直言,更好的方法是 FE 中的隐式流。它将生成访问令牌,用于 BE api 调用。