当身份提供者 (salesforce) 注销 SSO 时注销服务提供者 (passport-saml)

Logout service provider(passport-saml) when identity provider(salesforce) logs out SSO

我在salesforce端创建了一个connected App,并使用passport saml为基于expressJs的几个nodeJs应用提供SSO。

SSO 工作正常。

然而,当我从 salesforce 注销时,我仍然可以登录到应用程序。

我认为这与cookie有关。有什么方法可以查看 salesforce cookie 并在其失效时注销?

或者有什么方法可以在注销启动时从 salesforce 向我的其中一条路线发送呼叫?

解决方案是在从 NodeJs 提供 Web 应用程序之前验证 salesforce 身份验证令牌。换句话说,NodeJs 后端应用程序将使用在使用 jsforce.connection.login 界面登录时收到的 salesforce sessionId 令牌来验证相应的 salesforce 会话。如果会话不再有效,则应使用 req.logout() 方法

使 passportJs 会话失效

您可以在提供静态文件之前验证身份验证令牌(salesforce 或其他)。

但是,如果您要构建 SPA,则还需要在前端代码(在浏览器上运行)中验证会话。

否则,当浏览器执行缓存以及将数据从 SPA 保存到浏览器的本地存储时,您的方法将不起作用。