Nodejs + express + OpenId连接redirect到根

我已经在我的应用程序中集成了Passport OpenId Connect( https://github.com/jaredhanson/passport-openidconnect )成功

passport.use('provider', new OICStrategy({ issuer: "https://fssfed.stage.ge.com/fss", authorizationURL : "https://MYFEDERATIONURL/authorization.oauth2", tokenURL : "https://MYFEDERATIONURL/token.oauth2", userInfoURL : "https://MYFEDERATIONURL/userinfo.openid", callbackURL : "http://MYRETURNURL:5000", clientID: "MYSECRET", clientSecret: "MYPASSWORD" }, function(accessToken, refreshToken, profile, done) { console.log(accessToken); console.log(refreshToken); console.log("profile:") console.log(profile); console.log(done); return done(null, profile); } )); 

  app.use('/', function(req, res, next) { console.log(req.url + " " + req.isAuthenticated()); if (req.isAuthenticated()) { /*** HOW TO REDIRECT TO****/ } else { next(); } },passport.authenticate('provider')); app.use('/secure',express.static(path.join(__dirname, process.env['base-dir'] ? process.env['base-dir'] : '../public'))) 

validation后我必须发送静态内容,但是快递不能redirect到安全区域。 不幸的是,我的联邦提供商不能接受与“ http:// HOST:PORT / ”不同的redirecturl,换句话说,redirectURL位于根目录(callbackURL:“ http:// MYRETURNURL:5000 ”)。

如何表示请发送静态内容?

自己解决

第一步:安装openid-connect

 $ npm install passport-openidconnect --save 

第二步:configurationstartegy

在app.js中

 passport.use('provider', new OICStrategy({ issuer: "https://fssfed.stage.ge.com/fss", authorizationURL : "https://MYFEDERATIONURL/authorization.oauth2", tokenURL : "https://MYFEDERATIONURL/token.oauth2", userInfoURL : "https://MYFEDERATIONURL/userinfo.openid", callbackURL : "http://MYRETURNURL:5000", clientID: "MYSECRET", clientSecret: "MYPASSWORD" }, function(accessToken, refreshToken, profile, done) { return done(null, profile); } )); var OICStrategy = require('passport-openidconnect').Strategy; 

第三步:configuration路由

  //logout route app.get('/login',passport.authenticate('provider', {noredirect: false})); app.get('/authorize',passport.authenticate('provider', {noredirect: false}), function (req, res, next) { res.redirect('/'); }); app.use('/', function(req, res, next) { console.log(req.url + " " + req.isAuthenticated()); if (req.isAuthenticated()) { next(); } else { res.redirect('/login'); } }, express.static(path.join(__dirname, process.env['base-dir'] ? process.env['base-dir'] : '../public')));