我正在嘗試使用密鑰、證書和客戶端 ID 在 NodeJS 中獲取 oauth 令牌。
相同的代碼:
var form = {
client_id : CLIENT_ID,
grant_type: 'client_credentials',
}
var headers= {
'content-type': 'application/x-www-form-urlencoded',
}
var option = {
method: 'POST',
url: CERTIFICATE_URL "/oauth/token",
headers,
form,
httpsAgent:new https.Agent({
cert: CLIENT_CERTIFICATE.replace(/\\n/g, '\n'),
key: CLIENT_CERTIFICATE_KEY.replace(/\\n/g, '\n')
})
};
request(option, function(error, response, body) {
var token = null;
console.log(error);
console.log(JSON.parse(body).access_token)
if(!error && response.statusCode == 200) {
token = JSON.parse(body).access_token;
} else {
console.log(error)
error = error | new Error(body);
}
cb(error, token);
});
但收到以下錯誤:錯誤:寫入 EPROTO 140062523283264:錯誤:14094410:SSL 例程:ssl3_read_bytes:sslv3 警報握手失敗:../deps/openssl/openssl/ssl/record/rec_layer_s34020 alert number:SSL -10-13T23:46:56.23 0530 [APP/PROC/WEB/0] OUT at WriteWrap.afterWrite [as oncomplete] (net.js:789:14) errno: 'EPROTO', code: 'EPROTO', syscall : '寫'
證書和密鑰是從云環境本身生成和獲取的。這是基于 x509 MTLS 的身份驗證。
uj5u.com熱心網友回復:
能夠用 axios 庫做到這一點,請求庫似乎已被棄用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/325600.html
