小型SPA的OAuth2隐式流与基于“传统”会话的身份验证

Jas*_*son 6 authentication session session-cookies oauth-2.0 single-page-application

背景知识:

我正在写一个小型SPA,它将使用我也写过的后端。JS和后端API在同一服务器上。

即SPA将从foo.com加载,后端位于foo.com/api

过去,我一直将Spring Security与基于简单表单的登录一起使用。登录后,用户将获得一个会话cookie。很标准的东西。

对于这个应用程序,我研究了OAuth2隐式流程。我的理解是,用户将加载我的页面,然后从SPA引导用户到授权端点,以便我的应用程序可以获取令牌。用户将从授权端点重定向到登录表单。在用户使用表单进行身份验证之后,他们将被重定向回授权端点以获取令牌,并可能授予对JS客户端的访问权限。之后,将用户重定向到客户端指定的URL,并将新的访问令牌作为URL片段。

我有这项工作,一切都很好。我不太了解的部分是:当用户重定向到登录表单并进行身份验证时,将在服务器上创建一个会话,该会话必须至少持续足够长的时间,才能将用户重定向到授权端点以获取令牌。那时他们已经在我的服务器上拥有经过身份验证的会话,为什么不就此停止并使用传统的cookie和基于会话的登录呢?