私は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 をセットアップしましたが、どちらもうまく機能します。このエラーの原因がわからず、すべてを試しました。
リンクされた開発者アカウントで、すべてを適切に構成しました。
承認されたリダイレクト URL:
http://testdomain.ngrok.io/oauth/linkedin/callback
デフォルトの「承認」リダイレクト URL:
http://testdomain.ngrok.io/settings/connected-accounts
最初にポート 9000 で実行されている localhost URL を使用しましたが、それが失敗したときに、ローカルで実行されているアプリをライブ URL に公開しましたが、それでも同じエラーが発生しました。どんな助けでも大歓迎です。ありがとう