Node.js DBS API服务器沙盒调用错误500
我只是在这里试验DBSAPI沙箱()。我们必须使用OAuth2获取访问令牌,然后再将其传递到报头中以验证API调用。当我在他们的测试客户端UI上测试所有内容时,我从API调用中得到了结果 然而,当我编写我的简单节点应用程序时,我可以成功地执行OAuth2并获得访问令牌,但是当与clientId一起传入时,从API中得到一个服务器错误500 例如,Node.js DBS API服务器沙盒调用错误500,node.js,authentication,oauth-2.0,request,banking,Node.js,Authentication,Oauth 2.0,Request,Banking,我只是在这里试验DBSAPI沙箱()。我们必须使用OAuth2获取访问令牌,然后再将其传递到报头中以验证API调用。当我在他们的测试客户端UI上测试所有内容时,我从API调用中得到了结果 然而,当我编写我的简单节点应用程序时,我可以成功地执行OAuth2并获得访问令牌,但是当与clientId一起传入时,从API中得到一个服务器错误500 例如,GET调用以获取银行帐户详细信息: const options = { method: 'GET', uri: dbsHost + ro
GET
调用以获取银行帐户详细信息:
const options = {
method: 'GET',
uri: dbsHost + rootPath + '/accounts/22909292550739201999095',
headers: {
'Content-Type': 'application/json',
'accessToken': accessToken,
'clientId': clientId
}
}
request(options, (error, response, body) => {
// Server error 500
console.log(response)
})
这些是测试客户端UI上给出的确切说明。仔细检查后,我意识到我一直得到的访问令牌有488个字符,但测试客户机UI只有475个字符。有什么不同的原因吗?我如何知道OAuth2已正确执行,并且获得了正确的访问令牌
我是这样做的OAuth2:
在前端:
let authorizationUri = dbsHost + rootPath + '/oauth/authorize'
authorizationUri += '?client_id=' + clientId
authorizationUri += '&redirect_uri=' + redirectUri
authorizationUri += '&scope=Read'
authorizationUri += '&response_type=code'
authorizationUri += '&state=0399'
windows.location.assign(authorizationUri)
在redirect\u uri
端点处,我获得授权代码后:
app.get('/authCallback', (req, res) => {
let authCode = req.query.code
// Encode client_id:client_secret in base-64 to pass in as Auth Basic Header
let b64 = new Buffer(clientId + ':' + clientSecret).toString('base64')
const options = {
method: 'POST',
url: dbsHost + rootPath + '/oauth/tokens',
headers: {
'Authorization': 'Basic ' + b64
},
form: {
'code': authCode,
'redirect_uri': redirectUri,
'grant_type': 'token',
'state': '0399'
}
}
request(options, (error, response, body) => {
if (error) {
console.error('Access Token Error', error.message)
return res.status(500).json('Authentication failed');
}
let json = JSON.parse(body)
let accessToken = json['access_token']
// Make a call with this access token
})
})
我希望问题现在已经解决了?我在使用DBSAPI时也遇到过问题,我完全按照“TRY IT”方法获取访问令牌,但无法使用该令牌调用API。您是否使用他们的演示id和pw(iw036/123456)获取授权代码?不确定用于获取“正确”授权代码和访问令牌是否有效@莱昂纳多