Azure Identity 平台重定向到主页,ensureAuth 失败

问题描述

我正在尝试为我的(非常简单的)CRUD 应用程序实施身份验证步骤。所以这就是想法:当连接到 localhost:8000/ 时,您需要单击登录按钮,这将提示您使用 Microsoft 帐户登录。然后您应该被重定向到 localhost:8000/Feed。但它只是将我重定向到 localhost:8000。第二个问题是,我可以看到 MongoDB 存储了一个 Cookie。如果我访问 localhost:8000/auth/logout 它会删除它。所以它有效。但是我还是不能访问localhost:8000/Feed,因为ensureAuth不让我。

确保身份验证:

module.exports = {
ensureAuth: function(req,res,next){
    console.log("Executing ensureAuth function")
    if(req.isAuthenticated()){
        console.log("Is authenticated")
        return next()
    }else{
        console.log("ensureAuth Failed")
        res.redirect("/")
    }
},ensureGuest: function(req,next){
    if(!req.isAuthenticated()){
        return next()
    }else{
        res.redirect("/Feed")
    }
}

}

认证/登录路径:

router.get('/login',function(req,next) {
    passport.authenticate('azuread-openidconnect',{ 
        response: res,resourceURL: config.resourceURL,customState: 'my_state',failureRedirect: '/' 
      }
    )(req,next);
  },res) {
    console.log('Login was called in the Sample');
    res.redirect('/Feed');
});

验证/注销路由:

router.get('/logout',res){
  req.session.destroy(function(err) {
    req.logout();
    res.redirect(config.destroySessionUrl);
  });
});

饲料路线:

const express = require("express")
const router = express.Router()
const FeedController = require("../controllers/Feed")
const { ensureAuth,ensureGuest } = require("../middleware/auth")

router.get("/",ensureAuth,FeedController.getContent)

router.post("/postScream",FeedController.postScream)

module.exports = router

快速会话:

app.use(
    session({
      secret: 'foo',resave: false,saveUninitialized: false,store: new MongoStore({ mongooseConnection: mongoose.connection }),})
)

如果您需要大量代码,请联系我。我将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)