jaredhanson / passport

Simple, unobtrusive authentication for Node.js.
https://www.passportjs.org?utm_source=github&utm_medium=referral&utm_campaign=passport&utm_content=about
MIT License
22.91k stars 1.24k forks source link

App crash #219

Open iBat opened 10 years ago

iBat commented 10 years ago

Hi,

In some conditions my app crashes with this message:

TypeError: undefined is not a function
    at Strategy.strategy.error (/usr/lib/node_modules/passport/lib/middleware/authenticate.js:332:9)
    at /usr/lib/node_modules/passport-openid/lib/passport-openid/strategy.js:184:30
    at _verifyAssertionData (/usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1053:12)
    at Object.openid.verifyAssertion (/usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1046:10)
    at openid.RelyingParty.verifyAssertion (/usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:59:10)
    at Strategy.authenticate (/usr/lib/node_modules/passport-openid/lib/passport-openid/strategy.js:183:24)
    at attempt (/usr/lib/node_modules/passport/lib/middleware/authenticate.js:337:16)
    at authenticate (/usr/lib/node_modules/passport/lib/middleware/authenticate.js:338:7)
    at Object.exports.checkSimple (/xvm/xvm-icons/controllers/authController.js:57:7)
    at callbacks (/usr/lib/node_modules/express/lib/router/index.js:164:37)

where authController.js:57:7 is

exports.checkSimple = function(req, res) {
    passport.authenticate('openid', {
        successRedirect: req.session.returnURL,
        failureRedirect: req.session.returnURL
    })(req, res);
};

Are there any ideas how to fix it?

iBat commented 10 years ago

another crash log:

/usr/lib/node_modules/passport/lib/middleware/authenticate.js:332
        next(err);
        ^
TypeError: undefined is not a function
    at Strategy.strategy.error (/usr/lib/node_modules/passport/lib/middleware/authenticate.js:332:9)
    at /usr/lib/node_modules/passport-openid/lib/passport-openid/strategy.js:184:30
    at /usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1063:12
    at /usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1188:14
    at /usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1239:14
    at Object.openid.loadAssociation (/usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:111:5)
    at _checkSignatureUsingAssociation (/usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1231:10)
    at _checkSignature (/usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1221:5)
    at _verifyAssertionAgainstProvider (/usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1184:3)
    at /usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1155:16

all libs versions - last stable from npm repo.

jaredhanson commented 10 years ago

When invoking passport.authenticate middleware directly, you need to supply a next function:

(req, res, next); // <--- NEED TO HAVE A NEXT FUNCTION
iBat commented 10 years ago

Thanks. It fixes this crash, but there are 2 new:

Failed to verify assertion (message: None)
    at /usr/lib/node_modules/passport-openid/lib/passport-openid/strategy.js:184:36
    at _verifyAssertionData (/usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1053:12)
    at Object.openid.verifyAssertion (/usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1046:10)
    at openid.RelyingParty.verifyAssertion (/usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:59:10)
    at Strategy.authenticate (/usr/lib/node_modules/passport-openid/lib/passport-openid/strategy.js:183:24)
    at attempt (/usr/lib/node_modules/passport/lib/middleware/authenticate.js:337:16)
    at authenticate (/usr/lib/node_modules/passport/lib/middleware/authenticate.js:338:7)
    at Object.exports.checkSimple (/xvm/xvm-icons/controllers/authController.js:62:7)
    at callbacks (/usr/lib/node_modules/express/lib/router/index.js:164:37)
    at param (/usr/lib/node_modules/express/lib/router/index.js:138:11)

and

Failed to verify assertion (message: Invalid signature)
    at /usr/lib/node_modules/passport-openid/lib/passport-openid/strategy.js:184:36
    at /usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1063:12
    at /usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1188:14
    at /usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1269:7
    at Object.openid.loadAssociation (/usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:107:5)
    at _checkSignatureUsingAssociation (/usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1231:10)
    at _checkSignature (/usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1221:5)
    at _verifyAssertionAgainstProvider (/usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1184:3)
    at /usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:1155:16
    at /usr/lib/node_modules/passport-openid/node_modules/openid/openid.js:678:7
iBat commented 10 years ago

Any ideas?