2

在授权请求 (3.1.2.1) 和身份验证响应 (3.1.2.5) 之间,授权服务器负责验证请求、验证用户并在发送响应之前获得用户同意。

http://openid.net/specs/openid-connect-core-1_0.html#ImplicitFlowAuth

这应该如何在 SPA 应用程序中工作?

如果我发出 ajax 请求,授权服务器无法对用户进行身份验证(我看不出如何,因为没有 cookie、http-header 或 url 片段告诉授权服务器用户是谁)。如果我将用户重定向到身份验证端点,我的 SPA 将被卸载。由于我没有服务器 redirect_uri (我理解这是隐式流的全部意义?)端点永远无法再次到达我的 SPA。

显然我错过了一些东西。身份验证和用户授权 chrome 应该如何在隐式流程中向用户显示?

4

1 回答 1

1

OAuth 2.0/OpenID Connect 将身份验证与应用程序分开。在加载任何内容之前,您将重定向未经身份验证的客户端/用户远离您的应用程序,并且只处理 SPA 中的授权响应。您的重定向 URI 将指向 SPA。在任何情况下,您都不会在 Ajax 中而是在完整的浏览器中处理 OAuth 2.0/OpenID Connect 舞蹈。

于 2014-12-28T23:00:18.190 回答