WSO2IS passport-openidconnect,InternalOAuthError:无法获取访问令牌

时间:2018-05-04 17:16:46

标签: node.js passport.js wso2is

我目前正致力于使用WSO2IS 5.4.1实施passport-openidconnect身份验证。当我的应用程序向WSO2IS请求访问令牌时,问题似乎就出现了。从here引用协议流似乎我的应用程序在步骤5/6失败了?应用程序shell:

if

passport-openidconnect策略和基于this的网址调用:

fi

带有oauth DEBUG的WSO2IS shell:

jonathan@wso2is-sandbox:~/Projects/Javascript/vifi-ui$ nodejs app.js 
Server Started on Port 3000
GET /dashboard
GET /favicon.ico
GET /oidconnect/login
GET /oidconnect/login/callback?code=2fdff378-4fe6-39ea-8dcd-347015c0e041&state=o8HKPWlxvlhCMMd4YqeC10fb&session_state=3b87e55e710e546583d135262778cba57448ff59e19fde24118b381ecba9dad2.67C2KJwqQ3bADsvrIQgveA
InternalOAuthError: failed to obtain access token
    at /home/jonathan/Projects/Javascript/vifi-ui/node_modules/passport-openidconnect/lib/strategy.js:93:38
    at /home/jonathan/Projects/Javascript/vifi-ui/node_modules/oauth/lib/oauth2.js:191:18
    at ClientRequest.<anonymous> (/home/jonathan/Projects/Javascript/vifi-ui/node_modules/oauth/lib/oauth2.js:162:5)
    at emitOne (events.js:77:13)
    at ClientRequest.emit (events.js:169:7)
    at TLSSocket.socketErrorListener (_http_client.js:258:9)
    at emitOne (events.js:77:13)
    at TLSSocket.emit (events.js:169:7)
    at emitErrorNT (net.js:1256:8)
    at nextTickCallbackWith2Args (node.js:441:9)

Service Provider:Inbound Auth Config: OAuth/OpenidConn Config

非常感谢任何帮助。用户是否未被授权请求/接收令牌?是否需要对WSO2IS进行配置编辑?感谢

1 个答案:

答案 0 :(得分:0)

您成功获得了授权码。这意味着用户已被正确授权。似乎您的第二通电话是错误的。通过GET调用获取授权代码后,为了获取访问令牌,您需要使用第二个调用来调用令牌端点,第二个调用使用的是您收到的带有回叫URL和客户密码的授权代码。这应该是POST。

您将获得对回调URL的访问令牌作为响应。您的第二个请求中肯定有问题,否则您的处理不正确。

您可以遵循相同的[1]并使用sso跟踪器检查请求的行为方式。

[1] https://docs.wso2.com/display/IS541/Authorization+Code+Grant