我们正在使用SPA客户端(reactjs)和nodejs服务器构建一个全栈应用程序,这些服务器在API Rest中发布资源。我需要使用身份提供程序(如azuread或keycloack)对用户进行身份验证。我想使用OpenIdConnect协议(基于Oauth2),但我不知道我需要哪个流。我读到授权码与PKCE是最好的SPA,但我不明白为什么?如果我获得了access_token,我可以将其保存在SPA的什么位置?保存此令牌是否安全?您建议此体系结构使用哪种流程?
rvpgvaaj1#
使用OAuth 2.1,它非常简单。只有两种流可供选择:1.当有用户参与时,使用PKCE的授权代码。
在SPA和后端之间,您只有一个传统的cookie会话。
1条答案
按热度按时间rvpgvaaj1#
使用OAuth 2.1,它非常简单。
只有两种流可供选择:
1.当有用户参与时,使用PKCE的授权代码。
不再推荐所有其他流程。
如果您不想在SPA应用程序中处理令牌,那么您可以让后端为您处理所有令牌,如下图所示:
在SPA和后端之间,您只有一个传统的cookie会话。