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

3

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

3个回答

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

0

0
如果您已经正确设置,应该能够在POST到会话创建路由后看到HTTP响应中的Set-Cookie行(尝试使用适当的用户名、密码和URL进行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());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接