我们正在开发一个使用 Helidon SE 作为 API 和 Web 服务器的单页应用程序。我们正在努力如何使用 Auth0 配置 OIDC 身份验证。
我们不确定以下内容: 如果 Web 应用程序执行 AJAX 调用,并且用户未经过身份验证,我们确实希望服务器响应 401 以及有关如何重定向以进行身份验证的信息。如果存在非 Ajax 调用,我们希望服务器响应重定向到身份验证提供程序。
我们不确定如何配置 Helidon SE (v3) 来实现此行为
我们已经尝试了一些关于在 Helidon SE 中使用 OIDC 的教程和示例,但无法实现前面所述的所需行为。
考虑到 Ajax 和非 ajax 调用的混合,SPA 的 Helidon/架构的配置是什么,以使用 Auth0 处理身份验证。
我们显然对如何构建这样的应用程序缺乏了解
以下是我们 Helidon Security SME 的回复:
我们的 OIDC 支持的工作方式是,如果用户未经过身份验证,则会返回 307 重定向到身份服务器登录页面。这是他的“非 Ajax”方式。
如果他希望我们在 Ajax 调用时失败并显示 401 状态并发送有关如何登录的详细信息,我认为这是不可能的。可能会失败并返回 401 而不是 307,但不会提供有关重定向到何处或执行操作的具体详细信息。如果禁用重定向,则可以通过配置完成此操作,但这也会禁用“非 Ajax”方法。