redirect本地主机而不是myserver.org:3000/login/callback

被redirect到我的本地主机服务器,而不是

myserver.org:3000/login/callback

本地主机:3000 /login/callback

不明白为什么,从哪里

这里是我的代码的一部分:

app.get('/', function(req, res){ res.render('index', { user: req.user }); }); app.get('/account', ensureAuthenticated, function(req, res){ res.render('account', { user: req.user }); }); app.get('/login', passport.authenticate('saml', { failureRedirect: '/', failureFlash: true }), function(req, res) { console.log('so far worked out - =) 2'); res.redirect('/'); } ); console.log('so far worked out - =) 1'); app.post('/login/callback', passport.authenticate('saml', { failureRedirect: '/', failureFlash: true }), function(req, res) { console.log('so far worked out - =) 3'); // res.redirect(''); res.render('index', { user: req.user }); } ); app.get('/Metadata', // <--- also doesn't work function(req,res){ console.log(SAML.prototype.validatePostResponse); console.log('so far worked out - =) 4'); req.type('application/xml'); res.send(200, samlStrategy.generateServiceProviderMetadata(cert)); } ); 

不要获取元数据…除了console.log('so fa... 1')之外,它不会打印任何console.log('so fa... 1')

希望有人看到问题提前谢谢…;)

(类似的话题在这里: redirect到本地主机 – stackoverflow )

另请参见Node.js passport-samlredirect到本地主机:3000 /login/callback所有的时间我基本上做同样的事情上面build议,但提供我使用的例子。

我想出了我的问题

我正在使用的是提供的示例,其中包括Feide OpenIdP和下面的代码

 issuer: 'passport-saml' 

发行者是什么应用程序请求身份validation(在这种情况下)费德OpenIdP的标识。 “passport-saml”是Feide的OpenIdPnetworking上的一个预先注册的实体,它有一个预定义的redirect链接返回到localhost:3000

您需要做的是在Feide OpenIdP上注册您自己的实体条目,并将代码中的“发行者”更改为您注册的实体的名称。 这应该解决这个问题。

另外请注意:我有我的redirecturl硬编码的费德OpenIdP实体…我不知道如何Feide OpenIdP会作出反应,如果你没有在实体中指定的redirecturl。 也许它会redirect到您在passport.use(新的SamlStrategy())调用中configuration的任何内容。