我正在使用 passport-saml 通过 Google IDP(SAML APP)对用户进行身份验证
我的 SAML 策略配置如下
const samlStrategy = new SamlStrategy({
protocol: PROTOCOL,
entryPoint: SSO_URL, // SSO URL (Step 2)
issuer: SP_ENTITY_ID, // Entity ID (Step 4)
path: CALLBACK_PATH, // ACS URL path (Step 4)
cert: IDP_CERT,
logoutUrl: 'https://accounts.google.com/logout',
logoutCallbackUrl: '/signout'
}, function (profile, done) {
done(null, JSON.parse(JSON.stringify(profile)))
})
passport.use(samlStrategy)
使用 Passport SAML 策略,我能够成功登录
在注销时,我正在注销 SAML 策略,如下所示
server.get('/logout', function (req, res) {
try {
req.user.nameID = req.user.nameID;
req.user.nameIDFormat = req.user.nameIDFormat;
samlStrategy.logout(req, function(err, requestUrl){
if(err){
return res.send({ success: false, error: err });
}
req.logout()
req.session=null
req.user=null
return res.redirect(requestUrl);
});
} catch(error) {
return res.send({ success: false, error });
}
})
这使我退出所有登录浏览器的 Google 帐户。
问题:
- 有没有办法只从我用于 SAML 策略的特定 Google 帐户注销?
- 注销回调 url 也不会被调用