PassportJS如何检查用户是否已登录?

时间:2012-06-23 03:10:22

标签: session express

如何检查用户是否在ExpressJS / PassportJS应用中登录?我相信PassportJS会自动设置会话吗?但它设置了什么变量?

3 个答案:

答案 0 :(得分:2)

调用session.passport.user时设置的

req.logIn,调用req.logOut时取消设置

sessionStore = new MongoStore # RedisStore or whatever

sessionStore.get data.sessionID, (err, session) ->
  if session.passport.user?
     # Logged in

答案 1 :(得分:0)

如果你已经正确设置了它,你应该能够在POST到你的会话创建路径之后在HTTP响应中看到Set-Cookie行(尝试curl -v -d "username=whoever&password=supersecret" http://localhost:3000/session/new以及用户名,密码的相应替换和网址)。

但是,要直接回答您的问题,默认情况下您应该看到connect.sidremember_token。如果您没有看到此设置,但仍然可以在您的身份验证策略中转储有效的用户对象,请确认您在app.configure电话中有以下几行:

app.use(express.cookieParser());
app.use(express.session({secret: "replace"}); // lots of options here, read up
app.use(passport.session());

答案 2 :(得分:0)

在connect.js中,您应该检查中间件中的request.user

How to know if user is logged in with passport.js?