2014-09-22 4 views
2

인증 서버로 PingFederate를 사용하고 passport-ping npm으로 로그인하려고합니다.Not working : PingFederate + Passport.js Ping

내가 한 모든 일반적인 구성, 즉

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가이 인증 코드를 구문 분석하려고 시도하면 다음 오류가 발생합니다.

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) 

누군가 나를 도와주세요. 내가 놓친 게 있니?

답변

0

Passport가 응답을 구문 분석하지 못하면 오류 응답을 반환하는 PingFederate 인증 서버입니다. PingFederate에 구성된 것과 비교하여 사용하는 client_id/client_secret을 확인해야합니다. FWIW : clientSecret: config.facebook.clientSecret은 PingFederate에 대한 비밀로 의심 스럽습니다.