我正在尝试让我的 SPA 应用程序支持 OAuth2 的 Open ID Connect (OIDC)。我没有做隐式流程。我正在使用 Proof Key for Code Exchange ( PKCE ) 执行授权代码流程。
有一个 javacript 库可以为 OIDC 完成大部分繁重的工作。它被称为oidc-client-js。
它有 2 个登录选项。
- 重定向:将浏览器重定向到登录页面。之后它将浏览器定向到 OIDC 回调页面。
- 弹出:弹出一个加载登录页面的新浏览器窗口。之后弹出的窗口加载回调页面。
我遇到的问题是我最终使用任何一种方法至少加载了两次我的 SPA 应用程序。
对于重定向: SPA 应用程序加载,我调用重定向到登录屏幕。用户登录后,它会加载我的回调页面。再次加载应用程序。
对于弹出窗口: SPA 应用程序加载,我进行弹出调用以登录。使用登录后,它会在弹出的窗口中再次加载我的 SPA 应用程序(用于回调)。
将授权代码流与 PKCE 一起使用的 SPA 应用程序的预期流程是什么?