我在salesforce端创建了一个连接的应用程序,并使用passport saml为基于expressJs的多个nodeJs应用程序提供SSO。
SSO工作正常。
但是,当我从salesforce注销时,我仍然可以登录到应用程序。
我认为这与cookie有关。有没有办法观察salesforce cookie并在其失效时注销?
或者,在启动注销时,有没有办法从salesforce向我的其中一条路线发送电话?
答案 0 :(得分:0)
解决方案是在从NodeJs提供Web应用程序之前验证salesforce身份验证令牌。换句话说,NodeJs后端应用程序将使用jsforce.connection.login接口登录时使用salesforce sessionId令牌验证相应的salesforce会话。如果会话不再有效,则应使用req.logout()方法使passportJs会话无效
答案 1 :(得分:0)
您可以在提供静态文件之前验证身份验证令牌(salesforce或其他)。
但是,如果要构建SPA,则还需要在前端代码(在浏览器上运行)中验证会话。
否则,当浏览器执行缓存以及从SPA将数据保存到浏览器的本地存储时,您的方法将无效。