我正在尝试使用OpenID-Connect提供程序在我的React-Redux应用程序上实现SSO.目的是保护所有组件,并在会话结束时将用户重定向到身份提供商的登录页面.这就是我无法在应用程序中拥有专用登录页面(组件)的原因.我已经读过在localStorage中保存JWT可能是一个好主意,所以我想在Redux商店中使用标志isAuthenticated并将JWT保留在localStorage中.然后,我可以从localStorage中获取JWT,以便在我的应用程序中验证我要调用的其他API.这种方法是否合适?
此外,任何人都可以指向我可以用来为此目的获取(和刷新)JWT的库/包吗?我经历了很多文档并尝试了以下但无法使这些工作:
redux-oidc:我的应用程序中没有任何特定的Callback组件,所以我不太清楚如何将这种方法应用到我的应用程序中.
passport-openid-connect:Passport依赖于在cookies中存储会话,但我想使用localSorage.
redux-auth-wrapper:一个更高阶的组件听起来很棒,但我仍然无法弄清楚如何在没有任何专用登录组件的情况下集成它.
有人可以指导我一下吗?我是React生态系统的新手,所以请原谅我的不理解.
任何帮助将非常感激!
谢谢
我正在尝试使用Keycloak作为外部身份提供程序在React-Redux应用程序上实现SSO.如果用户未经过身份验证,则意图是重定向到IdP的登录页面,并且在成功进行身份验证后,使用access_token访问另一个REST API微服务上的受保护资源.
我尝试使用Keycloak的NodeJS适配器(https://keycloak.gitbooks.io/documentation/securing_apps/topics/oidc/nodejs-adapter.html),它能够将我重定向到IdP登录,我可以得到access_token但这一切都发生在快速会话中并使用MemoryStore.我想知道这是否可以?在快递商店中保存JWT并在进行API调用时从商店检索它们?
或者我应该尝试在Redux的商店中保存身份验证状态(JWT令牌)?与会话cookie相比,它会更好吗?会话cookie可能更安全,但每次都会涉及到商店,对吧?
最重要的是,我如何实现Redux商店拥有JWT的方法?
任何帮助将非常感激.
提前致谢.