passport: passport.js throws login session error after upgrading from 0.4.1 to 0.6.0
error: Server Error:
error: Error: Login sessions require session support. Did you forget to use express-session middleware?
at SessionStrategy.authenticate (/home/khaja/Desktop/flow-web/node_modules/passport/lib/strategies/session.js:46:41)
at attempt (/home/khaja/Desktop/flow-web/node_modules/passport/lib/middleware/authenticate.js:369:16)
at authenticate (/home/khaja/Desktop/flow-web/node_modules/passport/lib/middleware/authenticate.js:370:7)
at Layer.handle [as handle_request] (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:317:13)
at /home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:335:12)
at next (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:275:10)
at initialize (/home/khaja/Desktop/flow-web/node_modules/passport/lib/middleware/initialize.js:98:5)
at Layer.handle [as handle_request] (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:317:13)
at /home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:335:12)
at next (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:275:10)
at /home/khaja/Desktop/flow-web/node_modules/sails/lib/hooks/http/get-configured-http-middleware-fns.js:85:20
at app._privateSessionMiddleware (/home/khaja/Desktop/flow-web/node_modules/sails/lib/hooks/session/index.js:467:20)
at session (/home/khaja/Desktop/flow-web/node_modules/sails/lib/hooks/http/get-configured-http-middleware-fns.js:83:9)
at Layer.handle [as handle_request] (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:317:13)
at /home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:335:12)
at next (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:275:10)
at cookieParser (/home/khaja/Desktop/flow-web/node_modules/cookie-parser/index.js:71:5)
at Layer.handle [as handle_request] (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:317:13)
at /home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:335:12)
at next (/home/khaja/Desktop/flow-web/node_modules/express/lib/router/index.js:275:10)
- Operating System: ubuntu
- Node version: v14.20.0
- passport version: v0.6.0
About this issue
- Original URL
- State: open
- Created 2 years ago
- Reactions: 5
- Comments: 16 (1 by maintainers)
Commits related to this issue
- docs: mention breaking change in session handling in 0.6.0 release. Issue: #939 — committed to markstos/passport by markstos a year ago
Fyi I had this same problem after upgrading from 0.5.3 to 0.6.0. I found the solution as such:
If you explicitly specify session:false in passport.authenticate then 0.6.0 behaves like 0.5.3 did & doesn’t throw the session error.
I didn’t have to do that in 0.5.3. I also noticed that I had to specify session:false everywhere I called passport.authenticate.
Hi,
I’ve also encountered this error when updationf from
0.5.2to0.6.0. I’m usingpassport-jwt4.0.0.for older versions of passport 0.4.0 we dont need a callback for req.logout(); function but we need for 0.6.0
I encountered this as well while running a sailsjs app. The problem is that sails is disabling session on requests for assets. So main “main” request would work but I got the error for all css and js assets. My solution was to add this to the session config so that we enable sessions for all requests:
@robw00t specifying session:false in passport.authenticate does not work for me. Did you install express-session?