1

我正在使用 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 帐户。

问题:

  1. 有没有办法只从我用于 SAML 策略的特定 Google 帐户注销?
  2. 注销回调 url 也不会被调用
4

0 回答 0