redirect localhost instead of myserver.org:3000/login/callback

微笑、不失礼 提交于 2020-01-16 00:41:48

问题


being redirected all the time to my localhost-server, instead of

myserver.org:3000/login/callback

to

localhost:3000/login/callback

do not understand why and where from

here part of my code:

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));
    }
);

do not get the metadata... it doesn't print any of the console.log('so fa...') besides with the console.log('so fa... 1')

hope somebody sees the problem thank you in advance ... ;)

(similar topic here: redirect to localhost - stackoverflow )


回答1:


See also Node.js passport-saml redirects to localhost:3000/login/callback all the time where I basically do the same thing suggested above, but provide the example I used.




回答2:


I figured it out for my problem...

I was using exactly what the example provided, which included Feide OpenIdP AND the following code

issuer: 'passport-saml'

The issuer is an identification of what application is requesting authentication with (in this case) Feide OpenIdP. "passport-saml" is a pre-registered entity on Feide's OpenIdP network, which had an redirect link pre-defined in it to go back to localhost:3000

What you need to do is register your own entity entry on Feide OpenIdP and change the "issuer" in your code to whatever the name of the entity is that you registered. This should fix the problem.

Also note: I have my redirect url hard-coded on the Feide OpenIdP entity... I'm not sure how Feide OpenIdP would react if you did not specify the redirect URL in the entity. maybe it would redirect to whatever you have configured in the passport.use(new SamlStrategy()) call.



来源:https://stackoverflow.com/questions/24985023/redirect-localhost-instead-of-myserver-org3000-login-callback

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!