Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Passport正在强制/登录/回调nodejs_Node.js_Azure_Authentication_Azure Active Directory_Passport.js - Fatal编程技术网

Node.js Passport正在强制/登录/回调nodejs

Node.js Passport正在强制/登录/回调nodejs,node.js,azure,authentication,azure-active-directory,passport.js,Node.js,Azure,Authentication,Azure Active Directory,Passport.js,我为nodejs设置了passport。我也在使用azure ad,它正在正确验证并呈现我的登录页,但问题是每次我尝试单击新链接或在url中输入路径时,它都会将我重定向到该路径,但前面有/login,因此我从未真正进入该新页-就像这样(localhost:3000/login/catalog,而不是just/catalog)。如果以前有人遇到过此问题,请告诉我!谢谢:) 这是我的密码。提前谢谢 var SamlStrategy = require('passport-saml').Stra

我为nodejs设置了passport。我也在使用azure ad,它正在正确验证并呈现我的登录页,但问题是每次我尝试单击新链接或在url中输入路径时,它都会将我重定向到该路径,但前面有/login,因此我从未真正进入该新页-就像这样(localhost:3000/login/catalog,而不是just/catalog)。如果以前有人遇到过此问题,请告诉我!谢谢:)

这是我的密码。提前谢谢

   var SamlStrategy = require('passport-saml').Strategy;

passport.use(new SamlStrategy(
  {
    path: '/login/callback',

    entryPoint: 'https://login.microsoftonline.com/...',
    issuer: '...'
  },
  
  function(profile, done) {
    findByEmail(profile.email, function(err, user) {
      if (err) {
        return done(err);
      }
      return done(null, user);
      
    });
  })
);

app.post('/login/callback',
function(req, res) {
  console.log('inside /login/callback')
  //after login, goes here, but renders back to login/callback. then back here.
 res.render('index.ejs')
}
);

app.get('/login',
  passport.authenticate('saml', { failureRedirect: '/', failureFlash: true }),
  function(req, res) {
      console.log("inside azuread /login get passport saml")
     res.render('index.ejs')
  }



 );

请查看以下内容以供参考:

您可能需要更改路线代码:

   app.get("/login",
    passport.authenticate("saml", (err, profile) => {
        // control will not come here ????   
        console.log("Profile : ", profile);
    })
   );
    app.post("/login/callback",
         (req, res, next) => {
            passport.authenticate("saml", { session: false }, (err, user) => {
                req.user = user;
                next();
            })(req, res, next);
         },
         RouteHandler.sendResponse
   );