Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengesahkan kepada Perkhidmatan Web yang Dilindungi Kata Laluan Menggunakan PHP?

Bagaimanakah Saya Boleh Mengesahkan kepada Perkhidmatan Web yang Dilindungi Kata Laluan Menggunakan PHP?

Susan Sarandon
Susan Sarandonasal
2024-11-07 08:24:03505semak imbas

How Can I Authenticate to a Password-Protected Web Service Using PHP?

Menyambung kepada Perkhidmatan Web yang Dilindungi Kata Laluan dan Menyelesaikan Isu Kebenaran

Apabila cuba mengakses Perkhidmatan Web yang dilindungi WS-security melalui PHP, anda mungkin menghadapi kesukaran mengkonfigurasi kebenaran yang betul. Panduan ini bertujuan untuk menyediakan penyelesaian yang komprehensif untuk menyelesaikan cabaran ini.

Menyelesaikan Masalah Isu Keizinan

  • Jika skrip membuat permintaan tanpa pengesahan terlebih dahulu, ia mungkin akan gagal dengan ralat penghuraian WSDL.
  • Mentakrifkan perkhidmatan sebagai Pelayan Sabun juga boleh mengakibatkan SOAP-ERROR yang berkaitan dengan penghuraian WSDL.

Penyelesaian: Menggunakan WsseAuthHeader

Untuk mewujudkan sambungan selamat, anda boleh melanjutkan kelas SoapHeader dan mencipta pengepala pengesahan patuh Wsse:

class WsseAuthHeader extends SoapHeader {

    private $wss_ns = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';

    function __construct($user, $pass, $ns = null) {
        if ($ns) {
            $this->wss_ns = $ns;
        }
        // ... (rest of the class definition as provided in the answer)
    }
}

Setelah dibuat, objek WsseAuthHeader boleh ditetapkan sebagai pengepala sabun :

$wsse_header = new WsseAuthHeader($username, $password);
$x = new SoapClient('{...}', array("trace" => 1, "exception" => 0));
$x->__setSoapHeaders(array($wsse_header));

Pendekatan ini harus berjaya mewujudkan sambungan yang disahkan dengan Perkhidmatan Web yang dilindungi keselamatan WS.

Pilihan Tambahan

  • Menggunakan Cap Masa dan Nonce: Untuk meningkatkan keselamatan, pertimbangkan untuk memasukkan cap masa dan nonce ke dalam WsseAuthHeader anda.
  • Merujuk Penyelesaian Lain: Teroka sumber tambahan untuk alternatif pendekatan untuk mengakses Perkhidmatan Web yang dilindungi WS-security dengan PHP, seperti:

    • https://stackoverflow.com/a/18575154/367456

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesahkan kepada Perkhidmatan Web yang Dilindungi Kata Laluan Menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn