2016-05-01 121 views
1

我正在嘗試編寫使用Github Enterprise服務器進行身份驗證的Express/Passport應用程序。這需要手動編輯護照的github策略以指向私有企業API端點。沒有什麼大不了的。Strongloop Passport.js身份驗證 - 「無法獲取訪問令牌」

我正在使用Strongloop構建應用程序,所以我正在使用strongloop-passport-component集成。

至於我可以告訴應用程序配置正確,但對重定向,我得到了以下錯誤消息:

Loopback 500 InternalOAuthError: Failed to obtain access token at Strategy.OAuth2Strategy._createOAuthError (/Users/Tom/Desktop/soundoff/node_modules/passport-github/node_modules/passport-oauth2/lib/strategy.js:370:17) at /Users/Tom/Desktop/soundoff/node_modules/passport-github/node_modules/passport-oauth2/lib/strategy.js:166:45 at /Users/Tom/Desktop/soundoff/node_modules/passport-github/lib/strategy.js:75:25 at /Users/Tom/Desktop/soundoff/node_modules/passport-github/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:177:18 at ClientRequest. (/Users/Tom/Desktop/soundoff/node_modules/passport-github/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:148:5) at emitOne (events.js:90:13) at ClientRequest.emit (events.js:182:7) at TLSSocket.socketErrorListener (_http_client.js:262:9) at emitOne (events.js:90:13) at TLSSocket.emit (events.js:182:7)

如果我看github上的應用程序設置,我可以驗證用戶成功通過應用程序驗證。它似乎無法將用戶重定向到重定向URI。 aparrently它無法找到訪問令牌?

用戶最終訪問的URL類似於http://0.0.0.0:3000/auth/github/callback?code=dceef2ffe07b5dbfa194 - 但是,我預計它們最終會在http://0.0.0.0:3000/auth/account之後。

什麼可能導致回送找不到訪問令牌?是不是在?code=

回答

2

不幸的是,解決方案是不使用strongloop-passport-component。開發者一直沒有反應,看起來這不會被修復。

+0

任何機會,你可以提供有關如何/在哪裏插入護照到環回的指導?關於做一些非常相似的事情,所以任何幫助表示讚賞 –

0

如果臨時令牌(這裏是dceef2ffe07b5dbfa194)無效,它可能無法獲得訪問令牌。

可能在修改後的github-strategy中,臨時令牌交換爲最後一個令牌的OAuth流程的第二階段配置不正確,最有可能請求主要github api而不是您的企業github api令牌交換

+0

嘿謝謝你的幫助...似乎並不是這樣。我已經更新了所有對github的引用,以指向我的企業域。 :( – Prefix

+0

好的,那麼我會建議不要使用strongloop-passport-component。我遇到過類似的問題,不可靠的行爲,它封裝護照的事實使得調試變得困難。另外,這個組件看起來並不像在使用github存儲庫的情況下保持良好的維護狀態,直接使用護照js是非常簡單的,可以讓你理解在底層發生了什麼。 – Overdrivr

+0

謝謝@Overdrivr。我可能會這麼做。但如果它不起作用,它不起作用!同時我已經要求他們提供一個與github集成的演示,也許他們會把它修復下來。謝謝 – Prefix