当使用nodejs从mpesa API获取access_token时,您可以运行如下代码
var request = require('request'),
consumer_key = "YOUR_APP_CONSUMER_KEY",
consumer_secret = "YOUR_APP_CONSUMER_SECRET",
url = "https://sandbox.safaricom.co.ke/oauth/v1/generate?grant_type=client_credentials"
auth = "Basic " + new Buffer(consumer_key + ":" + consumer_secret).toString("base64");
request(
{
url : url,
headers : {
"Authorization" : auth
}
},
function (error, response, body) {
// TODO: Use the body object to extract OAuth access token
}
)Node中弃用了用于生成Authorization过程中使用的auth值的Buffer方法。另一种选择是什么?
发布于 2020-01-13 14:18:18
出于安全性和可用性方面的考虑,不建议使用
()和new Buffer()构造函数。请改用新的Buffer.alloc()、Buffer.allocUnsafe()或Buffer.from()构造方法。
发布于 2020-06-24 04:08:41
我已经用同样的方法相当成功地接收到了访问令牌。以下是我的代码
const request = require('request');
exports.mpesaAuth = asyncHandler(async(req, res, next) => {
const auth = new Buffer(
`${process.env.MPESA_KEY}:${process.env.MPESA_SECRET}`
).toString('base64');
request({
url: process.env.MPESA_URL,
headers: { 'Authorization': `Basic ${auth}` }
},
(err, response, body) => {
if (err) {
console.error(err);
} else {
res.status(200).json({
success: true,
body
});
}
},
);
});
我希望这能有所帮助。
发布于 2020-08-07 13:52:37
以下是ES6中的代码:
import axios from 'axios'
const consumer_key = "YOUR_APP_CONSUMER_KEY";
const consumer_secret = "YOUR_APP_CONSUMER_SECRET";
const url = process.env.SAF_AUTH_URL;
const Authorization = `Basic ${new Buffer.from(
`${consumer_key}:${consumer_secret}`,
'utf-8'
).toString('base64')}`;
axios
.get(url, {
headers: {
Authorization
}
})
.then((response) => {
// Handle Success
})
.catch((error) => {
//Handle your error
});https://stackoverflow.com/questions/59661697
复制相似问题