3

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

4

3 回答 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
于 2012-07-17T01:25:56.900 回答
0

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

如何知道用户是否使用passport.js 登录?

于 2013-12-04T21:08:33.863 回答
0

如果您设置正确,您应该能够在 POST 到会话创建路由后看到 HTTP 响应中的 Set-Cookie 行(尝试curl -v -d "username=whoever&password=supersecret" http://localhost:3000/session/new对用户名、密码和 url 进行适当的替换)。

但是,要直接回答您的问题,您应该看到connect.sid并且remember_token默认情况下。如果您没有看到这个集合,但仍然可以在您的身份验证策略中转储一个有效的用户对象,请验证您的app.configure调用中是否包含以下行:

app.use(express.cookieParser());
app.use(express.session({secret: "replace"}); // lots of options here, read up
app.use(passport.session());
于 2012-06-29T21:29:08.037 回答