电子钱包jsonRPC认证

时间:2018-02-25 17:01:14

标签: bitcoin json-rpc

我正在尝试使用electrum rpc,它给了我身份验证错误。我已尝试通过Linux bash上的基本身份验证和通过php进行用户传递,但不是有效。

我的php代码在plectrum漏洞升级之前工作正常。我也尝试过对bash的卷曲,但我得到同样的错误

Error code explanation: 401 - No permission -- see authorization schemes.

我试过了

curl --data-binary '{"id":"curltext","method":"listaddresses","params":{"funded":true}}' http://test:abc@127.0.0.1:7777

curl --data-binary '{"id":"curltext","method":"listaddresses","params":{"funded":true}}' http://127.0.0.1:7777

curl -utest http://127.0.0.1:7777

但是电子服务器从不接受任何身份验证。

我也尝试过禁用rpc身份验证,但我仍然遇到同样的错误

2 个答案:

答案 0 :(得分:0)

您必须使用相应的curl参数 basic authentication

引用手册的相关部分:

  

6.1基本身份验证

     

HTTP身份验证能够告诉服务器您的用户名和密码,以便它可以验证您是否可以执行您正在执行的请求。 HTTP中使用的基本身份验证(默认情况下是curl使用的类型)是 plain text ,这意味着它只会略微混淆地发送用户名和密码,但仍然完全可读任何人嗅探你和远程服务器之间的网络。

     

告诉curl使用用户和密码进行身份验证:

curl --user name:password http://www.example.com

所以,在终端中,你的命令应该有点像这样:

curl --user RPCusername:RPCpassword http://127.0.0.1:7777 …

并且(作为奖励)在PHP中,它看起来像这样:

<?php
$RPCusername = 'test';
$RPCpassword = 'abc';
$somefundedBTCaddress = '1FeexV6bAHb8ybZjqQMjJrcCrHGW9sb6uF';

$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $RPCusername.':'.$RPCpassword);
curl_setopt($ch, CURLOPT_URL, 'http://127.0.0.1:7777'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"id":"curltext","method":"getaddressbalance","params":{"address":"'.$somefundedBTCaddress.'"}}'); 
curl_setopt($ch, CURLOPT_POST, 1);

$headers = array(); 
$headers[] = "Content-Type: application/x-www-form-urlencoded"; 
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch); 
if (curl_errno($ch)) 
{ 
    echo 'Error:'.curl_error($ch).PHP_EOL; 
} 
else 
{
    $result =json_decode($result,true);
    echo($result['result']['confirmed'].PHP_EOL);
    echo($result['result']['unconfirmed'].PHP_EOL);
}
curl_close ($ch);
exit();

答案 1 :(得分:0)

您还可以使用其他传递用户名和密码的模式进行卷曲,例如:

curl --data-binary '{"params": {"amount": 0.0021651117760957575, "expiration": 1212}, "method": "addrequest", "id": "c6cf406e-0c4b-4eb7-b3d2-1712a4d3a553"}' http://user:LMt2FDyG-c543kc23H-NA==@10.78.1.1:7049