首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PayPal REST :如何用axios或curl对clientId和clientId进行编码?

PayPal REST :如何用axios或curl对clientId和clientId进行编码?
EN

Stack Overflow用户
提问于 2020-09-05 20:43:21
回答 1查看 934关注 0票数 0

下面是我一直在跟踪的与PayPal文档的官方连接:https://developer.paypal.com/docs/connect-with-paypal/integrate/#6-get-access-token

我所有的事情都要成功: clientId,secretKey和authorizationCode

我通过curl调用API的方式如下:

代码语言:javascript
复制
curl -X POST https://api.sandbox.paypal.com/v1/oauth2/token \
-H 'Authorization: Basic {clientId:secretKey}' \
-d 'grant_type=authorization_code&code={authorizationCode}'

但是我总是得到{“错误”:“invalid_client”,“error_description”:“客户身份验证失败”}

我试着从前端调用API:

代码语言:javascript
复制
const login = async (code) => {
    const config = {
        method: 'POST',
        url: 'https://api.sandbox.paypal.com/v1/oauth2/token',
        headers: {
            'Authorization': `Basic ${clientId}:${secretKey}`,
            'content-type': 'application/x-www-form-urlencoded',
        },
        data: `grant_type=authorization_code&code=${authorizationCode}`
    }
    await axios(config);
}

但是,它会导致这个错误: POST https://api.sandbox.paypal.com/v1/oauth2/token 401 (未经授权)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-05 20:51:12

${clientId}:${secretKey}需要base64编码

在JavaScript中,您可以使用btoa()、toString('base64')或带公理设置auth键。

使用curl,您可以使用-u命令行参数。

对于一般的rest用法,当向OAuth2/令牌端点传递一个基本的auth时,查询字符串应该是grant_type=client_credentials,作为记录在这里。这将返回可以在所有其他API调用中使用的access_token。

您链接到的'Connect‘文档用于特定的集成,您需要一个授权代码,但是没有其他API使用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63758333

复制
相关文章

相似问题

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