不工作:PingFederate + Passport.js Ping

我试图用PingFederate作为我的Auth服务器和passport-ping npm进行login。

我做了所有通常的configuration,即

app.get("/auth/ping", passport.authenticate("ping")); app.get("/auth/ping/callback", passport.authenticate("ping",{ failureRedirect: '/login'}), function(req,res){ console.log(profile); res.render("profile", {user : req.user}); } ); 

  // Ping Strategy passport.use(new PingStrategy({ host: 'blahblah.com', port: 9031, clientID: config.ping.clientID, clientSecret: config.facebook.clientSecret, callbackURL: config.ping.callbackURL }, function(accessToken, refreshToken, profile, done) { User.findOrCreatePingUser(profile, done); })); 

我甚至可以授予PingFederate的许可,并从那里重新定向。 但是,当Passport试图parsing这个授权码时,会抛出以下错误:

 Express 500 TokenError: Invalid client or client credentials at Strategy.OAuth2Strategy.parseErrorResponse (c:\Sandbox\node_modules\passport-ping\node_modules\passport-oauth\node_modules\passport-oauth2\lib\strategy.js:298:12) at Strategy.OAuth2Strategy._createOAuthError (c:\Sandbox\node_modules\passport-ping\node_modules\passport-oauth\node_modules\passport-oauth2\lib\strategy.js:345:16) at c:\Sandbox\node_modules\passport-ping\node_modules\passport-oauth\node_modules\passport-oauth2\lib\strategy.js:171:43 at c:\Sandbox\node_modules\passport-ping\node_modules\passport-oauth\node_modules\passport-oauth2\node_modules\oauth\lib\oauth2.js:177:18 at passBackControl (c:\Sandbox\node_modules\passport-ping\node_modules\passport-oauth\node_modules\passport-oauth2\node_modules\oauth\lib\oauth2.js:124:9) at IncomingMessage. (c:\Sandbox\node_modules\passport-ping\node_modules\passport-oauth\node_modules\passport-oauth2\node_modules\oauth\lib\oauth2.js:143:7) at IncomingMessage.emit (events.js:117:20) at _stream_readable.js:943:16 at process._tickCallback (node.js:419:13) 

有人可以帮我吗? 我错过了什么吗?

它不是Passportparsing响应失败,它是PingFederate授权服务器返回错误响应; 你应该检查你所使用的client_id / client_secret是否与PingFederate中configuration的内容相对应; FWIW: clientSecret: config.facebook.clientSecret似乎对我来说是一个秘密,可以用来对付PingFederate。