在授权请求(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?
答案 0 :(得分:1)
OAuth 2.0 / OpenID Connect将身份验证与应用程序分开。在加载任何内容之前,您将重定向未经身份验证的客户端/用户,并仅在SPA中处理授权响应。您的重定向URI将指向SPA。在任何情况下,您都不会在Ajax中处理OAuth 2.0 / OpenID Connect舞蹈,而是在完整的浏览器中。