首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NodeJS获取mpesa api中的授权令牌

使用NodeJS获取mpesa api中的授权令牌
EN

Stack Overflow用户
提问于 2020-01-09 18:15:51
回答 3查看 141关注 0票数 0

当使用nodejs从mpesa API获取access_token时,您可以运行如下代码

代码语言:javascript
复制
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方法。另一种选择是什么?

EN

回答 3

Stack Overflow用户

发布于 2020-01-13 14:18:18

出于安全性和可用性方面的考虑,不建议使用

()和new Buffer()构造函数。请改用新的Buffer.alloc()、Buffer.allocUnsafe()或Buffer.from()构造方法。

Read More about the alternative of new Buffer() here

票数 0
EN

Stack Overflow用户

发布于 2020-06-24 04:08:41

我已经用同样的方法相当成功地接收到了访问令牌。以下是我的代码

代码语言:javascript
复制
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
                });
            }
        },
    );
});

我希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2020-08-07 13:52:37

以下是ES6中的代码:

代码语言:javascript
复制
  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
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59661697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档