我正在尝试编写一个使用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=
中吗?
答案 0 :(得分:2)
不幸的是,解决方案是不使用strongloop-passport-component。开发人员一直没有反应,看起来不会修复。
答案 1 :(得分:0)
如果临时令牌(此处为dceef2ffe07b5dbfa194
)无效,则无法获取访问令牌。
在您修改的github策略中,可能没有正确配置OAuth流的第二阶段,其中临时令牌被交换为最终令牌,最有可能请求主github api而不是您的企业github api令牌交换