4

PHP、SOAP API を作成する必要があります。SOAP サーバーから SOAP クライアントを認証する必要があります。これは SOAP クライアントのコードです。

 $client = new SoapClient("cust.wsdl",array(
"trace"      => 1,
"exceptions" => 0,
"user" => 'username',
"pass" => 'password'));

$result = $client->getDetails($value1);

これらのユーザー名とパスワードをサーバー (SOAP SERVER) 側から取得して検証する必要があります。これは私のSOAPサーバーコードです

class getDb {
//return DATA 
}

$server = new SoapServer("cust.wsdl");
$server->setClass("getDb");
$server->handle();

SOAP サーバーからクライアントのユーザー名とパスワードを検証する必要があります。

SOAPSERVER から SOAP ユーザー名とパスワード ("user" => 'username', "pass" => 'password') を取得する方法を知っている人は教えてください。

4

4 に答える 4

4

認証の詳細は、次のように取得できます。

    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');
    echo 'Auth failed';
    exit;
}

任意の出力を生成できますheader('HTTP/1.0 401 Unauthorized');

于 2012-11-30T09:44:11.107 に答える
2
$client = new SoapClient("cust.wsdl",array(
    "trace"      => 1,
    "exceptions" => 0,
    **"user" => 'username',
    "pass" => 'password'));**

上記の 2 つの項目は、通常、http 認証のユーザー名とパスワードです。それらを検証する必要がある場合は、Apache の基本認証レベルで行うことができます。PHP レベルでそれを行う必要がある場合は、リソースを表示するためにセキュリティを必要とする http 認証ベースのセッション ハンドラを作成する必要があります。その例を次に示します: http://php.net/manual/en/features.http-auth.php ほとんどの開発者は、LDAP またはその他のサービスに結び付けられた apache 基本認証を使用して、認証要求を処理し、ソープサービスは実際の仕事を扱うだけです。

于 2012-11-30T07:52:03.093 に答える
1

以下のメソッドを使用して、HTTP Auth メソッドから成功した SOAP PHP 認証応答を得ました。

私の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
}
于 2012-12-07T14:51:11.883 に答える