PHP Soap身份验证标头599

时间:2014-03-22 13:33:26

标签: php soap

我是php Soap网络服务的新手。我正在尝试创建客户端/服务器机制,它将交换一些基本数据。我已经这样做了。但是,我需要帮助如何从客户端发送标头身份验证详细信息以及如何在服务器上解析它(例如,用户名,密码和API密钥)?

请你给我一个基本的例子,我真的需要它。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

希望这有助于你

SOAP客户端语句看起来像

$client = new SoapClient("name.wsdl",array(
"trace"      => 1,
"exceptions" => 0,
"login" => 'xxx',
"password" => 'xxx'));

在服务器

我将此PHP语句用于Authenticate PHP Auth标头

    if(($_SERVER['PHP_AUTH_PW']!= $pass
 || $_SERVER['PHP_AUTH_USER'] != $login)
 || !$_SERVER['PHP_AUTH_USER'])
    {
        header('WWW-Authenticate: Basic realm="Test auth"');
        header('HTTP/1.0 401 Unauthorized');
        // OR ANY THING
}

<强>更新

您可以像这样使用

$client = new SoapClient(WSDL,array());

$auth = array(
        'UserName'=>'USERNAME',
        'Password'=>'PASSWORD',
        'SystemId'=> array('_'=>'DATA','Param'=>'PARAM'),
        );
  $header = new SoapHeader('NAMESPACE','Auth',$auth,false);
  $client->__setSoapHeaders($header);