Strongloop Passport.js身份验证 - "无法获取访问令牌"

时间:2016-05-01 15:40:07

标签: javascript node.js oauth passport.js loopbackjs

我正在尝试编写一个使用Github Enterprise服务器进行身份验证的Express / Passport应用程序。这需要手动编辑护照的github策略以指向私有企业API端点。那里没什么大不了的。

我使用Strongloop构建应用程序,因此我使用strongloop-passport-component集成。

据我所知,应用程序配置正确,但在重定向时,我收到以下错误消息:

  

Loopback 500 InternalOAuthError:无法获取访问令牌   Strategy.OAuth2Strategy._createOAuthError   (/Users/Tom/Desktop/soundoff/node_modules/passport-github/node_modules/passport-oauth2/lib/strategy.js:370:17)   在   /Users/Tom/Desktop/soundoff/node_modules/passport-github/node_modules/passport-oauth2/lib/strategy.js:166:45   在   /Users/Tom/Desktop/soundoff/node_modules/passport-github/lib/strategy.js:75:25   在   /Users/Tom/Desktop/soundoff/node_modules/passport-github/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:177:18   在ClientRequest。   (/Users/Tom/Desktop/soundoff/node_modules/passport-github/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:148:5)   在ClientRene.emit的emitOne(events.js:90:13)处   (events.js:182:7)在TLSSocket.socketErrorListener   (_http_client.js:262:9)在emitOne(events.js:90:13)at at   TLSSocket.emit(events.js:182:7)

如果我查看github应用程序设置,我可以验证用户是否已成功通过该应用程序进行身份验证。它似乎无法将用户重定向到重定向URI。很明显它无法找到访问令牌?

用户最终使用的网址类似http://0.0.0.0:3000/auth/github/callback?code=dceef2ffe07b5dbfa194 - 但是,我希望它们最终会显示在http://0.0.0.0:3000/auth/account上。

什么可能导致Loopback找不到访问令牌?它不在网址?code=中吗?

2 个答案:

答案 0 :(得分:2)

不幸的是,解决方案是不使用strongloop-passport-component。开发人员一直没有反应,看起来不会修复。

答案 1 :(得分:0)

如果临时令牌(此处为dceef2ffe07b5dbfa194)无效,则无法获取访问令牌。

在您修改的github策略中,可能没有正确配置OAuth流的第二阶段,其中临时令牌被交换为最终令牌,最有可能请求主github api而不是您的企业github api令牌交换