使用Passport-linkedin策略时的InternalOAuthError

我正在使用passport-linkedin,我收到这个错误。

InternalOAuthError: failed to obtain request token at /Users/davey/code/node/appify-frontend/node_modules/passport-linkedin/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth.js:196:36 at /Users/davey/code/node/appify-frontend/node_modules/passport-linkedin/lib/passport-linkedin/strategy.js:80:19 at passBackControl (/Users/davey/code/node/appify-frontend/node_modules/passport-linkedin/node_modules/passport-oauth/node_modules/oauth/lib/oauth.js:397:13) at IncomingMessage.<anonymous> (/Users/davey/code/node/appify-frontend/node_modules/passport-linkedin/node_modules/passport-oauth/node_modules/oauth/lib/oauth.js:409:9) at IncomingMessage.emit (events.js:129:20) at _stream_readable.js:908:16 at process._tickCallback (node.js:355:11) GET /oauth/linkedin 500 1074ms - 786b 

这是我的设置看起来像

 exports.setup = function (config) { var passport = require('passport'); var LinkedinStrategy = require('passport-linkedin').Strategy; passport.use(new LinkedinStrategy({ consumerKey: config.linkedin.clientID, consumerSecret: config.linkedin.clientSecret, callbackURL: config.linkedin.callbackURL }, function(token, tokenSecret, profile, done) { console.log(token, tokenSecret, profile); return done(null, true); } )); }; 

我的路由设置如下

 router .get('/', function(req, res, next) { console.log("[OAuth2:redirect:query]:", JSON.stringify(req.query)); console.log("[OAuth2:redirect:body]:", JSON.stringify(req.body)); next(); }, passport.authenticate('linkedin', { failureRedirect: '/settings/connected-accounts', session: false })) .get('/callback', passport.authenticate('linkedin', { failureRedirect: '/settings/connected-accounts', session: false }), function (req, res){ res.redirect('/settings/connected-accounts'); }); 

在同一个应用程序中,我设置了twitter和facebook oauth,这两个工作都很好。 我不知道是什么原因导致这个错误,并尝试了一切。

在我的linkedin开发者帐户中,我已经configuration好了所有的东西。

授权redirecturl:

http://testdomain.ngrok.io/oauth/linkedin/callback

默认“接受”redirecturl:

http://testdomain.ngrok.io/settings/connected-accounts

我首先使用了一个运行在端口9000上的本地主机url,但是当这个失败的时候,我把我的应用在本地运行到一个活动的url,但是我仍然有同样的错误。 任何帮助表示赞赏。 谢谢

InternalOAuthError与passport-oauth1( https://github.com/jaredhanson/passport-linkedin/blob/master/lib/strategy.js )相关,但根据路由设置使用OAuth2。 所以请尝试切换到passport-linkedin-oauth2