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



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

SSO工作正常。

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

我相信这和饼干有关。是否有任何方法可以监视salesforce cookie并在其无效时注销?

或者当注销启动时,是否有任何方法从salesforce发送呼叫到我的一个路由?

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

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

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

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

使passportJs会话无效。

最新更新