首页 > 解决方案 > 如何在 react-admin 中连接 authProvider 以使用 SAML?

问题描述

我已经尝试按照 passport-saml 站点上的示例代码以及 react-admin 站点上的 OAuth 高级教程进行操作,但无法弄清楚我需要对 authProvider 做什么才能获得经过身份验证的会话使用 SAML 在 react-admin 中可用。

我目前可以通过 OneLogin 登录我的应用程序(单击面板中的应用程序)并写出用户的信息(在 passport.serializeUser 函数中),所以我知道该部分正在工作,但我不确定如何获取该信息传递给 authProvider。

当您提交表单时,authProvider 上的登录功能会被触发,因此如果我可以复制 OneLogin 在我单击应用程序时发送的内容,我可能会在 authProvider.login 中进行该调用并创建一个在加载时提交的自定义登录页面而不是等待提交,但这似乎不是故意的。

我在这里错过了什么,有没有更好的选择我没有考虑?

标签: react-adminoneloginpassport-saml

解决方案


我最终在服务器上编写了一个 getUser 函数并使用 authProvider.login 函数访问该端点,从响应中解析用户数据,并将其存储在 localStorage 中。然后注销从 localStorage 中删除用户,而 checkAuth 只是从 localStorage 中获取用户。

目前这对我的目的有效,尽管最终我会想要使用户过期。希望这可以帮助其他尝试将 OneLogin 与 React-admin 连接起来的人。


推荐阅读