2016-05-01 125 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