一直被重定向到我的本地主机服务器,而不是
myserver.org:3000/login/callback
到
localhost: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')
希望有人看到这个问题提前谢谢你......;)
最佳答案
我想通了我的问题...
我使用的正是示例提供的内容,其中包括 Feide OpenIdP 和以下代码
issuer: 'passport-saml'
颁发者是什么应用程序请求使用(在本例中)Feide OpenIdP 进行身份验证的标识。 “passport-saml”是Feide的OpenIdP网络上的预注册实体,其中预定义了一个重定向链接以返回到localhost:3000
您需要做的是在 Feide OpenIdP 上注册您自己的实体条目,并将代码中的“发行者”更改为您注册的实体名称。这应该解决问题。
另请注意:我在 Feide OpenIdP 实体上硬编码了我的重定向 URL...如果您未在实体中指定重定向 URL,我不确定 Feide OpenIdP 会如何 react 。 也许它会重定向到您在 passport.use(new SamlStrategy()) 调用中配置的任何内容。
关于javascript - 重定向 localhost 而不是 myserver.org :3000/login/callback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24985023/