React-Redux应用程序中的OpenID Connect SSO
我试图在使用OpenID-Connect提供程序的React-Redux应用程序上实施SSO。目的是保护所有组件,并在会话结束时将用户重定向到身份提供商的登录页面。 这就是为什么我不能在应用程序中有专门的登录页面(组件)。 我读过在localStorage中保存JWT可能是一个好主意,所以我想在Redux商店中使用isAuthenticated标志并将JWT保留在localStorage中。然后,我可以从localStorage中获取JWT来验证我在应用程序中调用的其他API。这种方法是否合适?React-Redux应用程序中的OpenID Connect SSO
此外,任何人都可以指向一个库/包,我可以使用它来获取(并刷新)JWT为此目的?我经历了很多的文档就去尝试了以下,但不能让这些工作:
redux-oidc:我没有在我的应用程序的任何特定回调组件,因此我不太知道如何将此方法应用于我的应用程序。
passport-openid-connect:护照依赖于在cookie中存储会话,但我想使用localSorage来代替。
redux-auth-wrapper:高阶组件听起来不错,但我仍然无法弄清楚如何在没有任何专用登录组件的情况下将其集成。
有人能指导我吗?我是React生态系统的新手,请原谅我的不理解。
任何帮助将不胜感激!
感谢
你是在正确的轨道上 - 终极版 - OIDC管理您的终极版状态的登录信息 - 实际管理智威汤逊(隐式流),重定向到IdentityServer(取)登录页面的客户端库并返回到您的应用程序(“回调”)是oidc客户端。
redux-auth-wrapper只是一个HOC(高阶组件) - 基本上是一个包装器,用于检查用户是否已通过身份验证(在Redux商店或使用自定义函数)并转发到登录页面 - 在我的意见你并不需要它,因为redux-oidc已经给你提供了你所需要的一切。
我个人还实施了一个IdentityServer4 - 集中管理所有外部提供商 - 到目前为止它一直运作良好。
我建议先看看https://blogs.msdn.microsoft.com/webdev/2017/04/26/the-mvp-show-learns-about-asp-net-identity-server-and-heidelberg/,IdentityServer4的创建者正在很好地解释识别是如何工作的以及流程(隐式与混合)。 一旦你知道身份基础知识以及它如何挂在一起,看看redux-oidc sample(很容易遵循)。
玩得开心;)