如何检查用户是否在ExpressJS / PassportJS应用中登录?我相信PassportJS会自动设置会话吗?但它设置了什么变量?
答案 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.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());
答案 2 :(得分:0)
在connect.js中,您应该检查中间件中的request.user