gpt4 book ai didi

php - 如何进行 XMLRPC::Client 身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 16:39:54 25 4
gpt4 key购买 nike

我需要发出一个必须经过身份验证的 XMLRPC 请求,并且在 XMLRPC 的身份验证方面找到了有限的文档。最好的方法是什么?现在我正在使用下面的代码,但仍然出现身份验证失败。是否有不同的方式来指定客户端,然后调用辅助身份验证方法?

client = XMLRPC::Client.new(@xmlrpc_url, "/xmlrpc.php", "443", nil, nil, @username, @password, true, 900)

最佳答案

...I'm using the code below but still getting an authentication failure

仔细检查远程网络服务器是否正在接受资源 /xmlrpc.php 的 HTTP 基本身份验证,并且它进一步接受您的 @username@密码

根据 docs ,你的 RPC client.call("bwizzy") 的 XMLRPC 咒语将生成像这样的 Basic Auth 的东西:

POST /xmlrpc.php HTTP/1.1
User-Agent: XMLRPC::Client (Ruby 1.9.1)
Content-Type: text/xml; charset=utf-8
Content-Length: 88
Connection: keep-alive
Authorization: Basic c3RhY2s6b3ZlcmZsb3c=
Accept: */*
Host: localhost

<?xml version="1.0"><methodCall><methodName>bwizzy</methodName></params></methodCall>

(请不要向我提示这些 header 的顺序——这就是我在网络上看到的!:))

现在,XML-RPC 本身不提供身份验证,因此您有几个通用选项:

  1. 使用典型的“网络身份验证”技术
    HTTP 授权方案,就像您当前正在使用的一样。受信任的客户端证书。 Cookie 身份验证 token 。等等
    然而,典型的 Web 身份验证技术具有共同的风险。在此处查看 SO 以获取更多指导。

  2. 扩展 RPC 函数以支持用户定义的身份验证
    例如,RPC 调用 bwizzy 可能会将用户名和密码作为参数。
    或者登录 RPC 函数可能会生成一个限时 token 以用作 Cookie。
    这种方法是侵入性的——现在你的 RPC 调用必须是授权感知的——而且容易出错——现在你必须自己实现授权。

  3. 扩展 XML-RPC 本身
    XML RPC 调用本身可以签名或签名并加密,例如,ala SOAP 的 digital signatures

关于php - 如何进行 XMLRPC::Client 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1265654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com