问题标签 [redux-oidc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
openid - 通过 steam 使用 redux-oidc
现在,我用的是React,然后我想用redux-oidc通过steam openid登录,但是效果不好……我觉得我的oidc客户端配置不好;
我应该如何改变它?谢谢。
reactjs - 关于 redux-oidc signoutRedirect 的问题
问题/问题
我使用 Identity Server 进行单点登录,我的客户端应用程序位于嵌入 Redux 的 ReactJs 中。我正在使用redux-oidc
npm 节点模块来实现身份服务器功能,如https://github.com/IdentityModel/oidc-client-js/wiki中所述
我的 oidc 配置是
如果我使用内置方法signoutRedirect
,它会再次重定向到应用程序的初始登录页面,但如果我直接触发结束会话,它会重定向到身份服务器登录页面(即,一旦应用程序成功注销,身份服务器将重定向到根 URI,然后重定向到登录页面)。
问题:它不是注销应用程序
很好:登出很完美
请帮助我如何使用userManager.signoutRedirect()
???
reactjs - Redux oidc 回调调用了两次
我的 React 容器如下所示:
回调组件如下所示:
我的 Privateroute 如下所示:
我的商店看起来像:
我的问题是:回调组件被调用了两次。我找不到它从哪里触发?第一次,它按预期进入成功函数,然后第二次,它将进入错误函数。然后页面冻结,浏览器中显示的 URL 是回调链接。我找不到为什么这个回调运行两次?有人可以帮我解决这个问题。我希望你理解这个问题。
此代码基于 redux-oidc 示例。请点击以下链接。 Redux-oidc 示例
react-redux - redux-oidc 从 keycloak 重定向 - USER_EXPIRED 在 USER_FOUND 之前调用,导致登录屏幕闪烁
我有一个使用redux-oidc的登录系统,其中keycloak作为 ID 管理器。该应用程序的登录页面是登录屏幕。当用户单击登录按钮时,他们会被引导使用 keycloak 登录。在登录时,它们会被重定向回我们的应用程序。问题是登录屏幕在被带到应用程序之前会短暂闪烁。我们正试图摆脱这种情况。以下是页面从重定向加载后触发的 redux 操作:
我可以在这里看到登录屏幕闪烁的原因 -LOADING_USER
设置state.oidc.isLoadingUser
为 true,但USER_EXPIRED
将其设置为 false。然后USER_FOUND
设置用户,我们LOGIN_SUCCESS
将所有用户/会话数据保存在存储中并调用state.auth.authenticated
true。在从重定向加载页面时,有一个短暂的时刻,我没有用户数据和身份验证,并且无法知道 oidc 客户端仍在加载我的用户。
一旦已经登录,页面重新加载就不是这种情况。重新加载时,我得到这个:
这是有道理的,因为用户数据已经存在,所以要么state.oidc.isLoadingUser
或要么state.oidc.user
是真的。但我希望这在重定向的第一页加载时是相同的,因为用户数据是使用redirect_uri
. 看一下代码,我们在 store 定义后立即调用redux-oidc
's :loadUser
userManager
据我所知,我们正在以一种非常标准的方式进行设置:
回调组件是它LoginPage
本身:
在应用程序中,我们仅在用户为authenticated
. 否则,我们渲染登录屏幕:
oidc 和 live 之间的连接authenticated
在我们的 sagas 中USER_FOUND
被拦截,我们调用后续动作将有效负载传递给 store 并设置authenticated
为 true。
也许这是 TMI,但我想给出这个问题的全部范围。我相信它的核心是,由于某种原因,redux-oidc 正在调用USER_EXPIRED
,然后调用USER_FOUND
一次 keycloak 重定向回我们的应用程序。为什么?我如何跟踪我们仍在等待 redux-oidc 找到用户这一事实的页面加载?我需要让我的应用程序(和用户)知道您刚刚通过第三方登录,等待我们将您重定向到该应用程序。我是 OIDC 的新手,所以如果我遗漏了一些明显的问题,请原谅我。谢谢阅读。
javascript - 从 extraReducers 触发 redux 动作
首先,我知道(或者我想我已经读过)你永远不应该从减速器中触发动作。在我的情况下,我redux-oidc
用于处理针对我的应用程序的身份验证。用户登录后,redux-oidc
触发一个操作并在切片redux-oidc/USER_FOUND
中设置用户的个人资料。state.oidc.user
登录后,我需要从我的数据库中查找不在 OIDC 响应中的有关用户的其他信息。目前,我正在按fetchUserPrefs
预期redux-oidc.CallbackComponent.successCallback
工作。
我的问题是当用户有一个活跃的会话并打开一个新的浏览器,或者手动刷新页面并再次初始化应用程序时,回调没有被命中,所以额外的用户水合作用不会发生。似乎我想要做的是添加一个extraReducer
监听redux-oidc/USER_FOUND
动作并触发 thunk 的操作,但这会从减速器触发一个动作。
有一个更好的方法吗?
reactjs - 在 Redux oidc 中如何检查用户是否登录,在应用程序初始化?
问题是一旦用户登录,如果我从 redux 商店签入用户
userManager.getUser(user => console.log(user))
总是返回 null。
即使我这样做const oidcstore = useState(state => state.oidc.user)
也返回 null
如果我添加一些超时,那么我可以看到用户。
我是 ReactJS 的新手,任何帮助将不胜感激。
我运行的所有这些方法useEffect
。
任何形式的帮助将不胜感激