用于执行第三方API以检索数据的自定义API插件

时间:2019-12-26 作者:BBBBB86

我对WordPress不熟悉

我有一个请求,需要创建一个自定义REST API插件,当用户触发以下URL链接时:

www.example.com/wp-json/v1/getCoupon/123456?CouponID=MacD

插件将执行以下操作:

a.执行CURL POST(使用插件中存储的用户名和密码)以检索令牌

b.使用检索到的令牌、订单号和优惠券ID(在URL中指定)执行CURL GET以检索优惠券信息。

插件中存储的凭据是否存在任何安全问题<这种设置方法可行吗

在此寻求专家建议

1 个回复
SO网友:Awais

如果您需要为基本身份验证传递用户名和密码,则需要在标题中发送,例如。

$headers = array(\'Authorization\' => \'Basic \' . base64_encode( YOUR_USERNAME . \':\' . YOUR_PASSWORD );

$response = wp_remote_post( $url, array(
    \'method\'      => \'POST\',
    \'timeout\'     => 45,
    \'headers\'     => $headers
    )
);
如果您需要将用户名和密码作为值传递,您可以将其发送到正文中,例如。

$response = wp_remote_post( $url, array(
    \'method\'      => \'POST\', // Use \'GET\' for GET request
    \'timeout\'     => 45,
    \'headers\'     => array(),
    \'body\'        => array(
        \'username\' => \'test\',
        \'password\' => \'xxxx\'
    ),
    )
);

//Get the response
if ( is_wp_error( $response ) ) {
    $error_message = $response->get_error_message();
    echo "Something went wrong: $error_message";
} else {
    echo \'Response:<pre>\';
    print_r( $response ); // You will get the token in $response, the $response usually in JSON or XML.
    echo \'</pre>\';
}
一旦你有了令牌,你可以在URL中再次将其发送到wp_remote_post 作用

对于您的另一个问题,您必须加密任何敏感信息,并在需要时解密。

相关推荐

我应该让我的Twitter插件用户创建他们自己的Twitter应用程序和API密钥来使用我的插件吗?

我正在创建我的第一个WordPress插件。它是一个Twitter插件,使用Twitter API 1.1和OAuth 2.0生成承载令牌,然后使用该令牌从Twitter获取推文。该插件即将推出。现在,插件的用户需要转到以下位置:https://developer.twitter.com/en/apps/create并创建一个新的应用程序,填写所有详细信息,以便他们可以生成自己的消费者API密钥&;与我的插件一起使用的秘密。一旦他们这样做,我的插件将为他们获取一个承载令牌。我的插件只需要“读取”权限