Angular 和 local-Passportjs 身份验证

Angular and local-Passportjs authentication

提问人:Dan Nir 提问时间:11/15/2023 最后编辑:Dan Nir 更新时间:11/15/2023 访问量:12

问:

晚上好。 尝试使用passport-js本地策略为我的angular项目创建身份验证 req.user 在“/login”路由中定义,但是当我尝试请求其他路由时,req.user 未定义。

当我在 Atlas 中看到会话集合时,首先奇怪的是它创建了 2 个会话,似乎它确实保存了 req.user,但每个请求都会创建一个新会话

   // express-session-usage
    const store = MongoStore.create({
      mongoUrl: MongoUrl,
      secret: 'khkjh',
      touchAfter: 24 * 60 * 60,
      autoRemove: 'native'
    })
    

const sessionConfig = {
  store,
  name: 'Banana',
  secret: 'sskdjskdjfskj',
  resave: false,
  saveUninitialized: true,
  cookie: {
    httpsOnly: true,
    secure: true,
    expires: Date.now() + 18000000, //7200000 //1000 * 60 * 60 * 24 * 7, // session expires every 2 hours
    maxAge: 18000000 //7200000 1000 * 60 * 60 * 24 * 7 // // Max session Age is 2 hours
  }
}
app.use(session(sessionConfig))
app.use(passport.initialize());
app.use(passport.session());
here are the mongoose models created

passport.use(new LocalStrategy(Doctor.authenticate()));
passport.serializeUser(Doctor.serializeUser());
passport.deserializeUser(Doctor.deserializeUser());

app.post('/login',passport.authenticate('local', { session: true,failureRedirect: '/isAuth' }),async(req,res)=> {
  if (req.user === false) {
    console.log(req.user)
    res.json(false);
    res.end()
  } else {
    console.log(req.user)
    res.json(true);
    res.end()
  }
})
节点 .js 角度快速 护照.js 护照本地

评论

0赞 Dan Nir 11/15/2023
我在另一个项目中使用完全相同的方法(前端是 EJS 引擎..),一切正常

答: 暂无答案