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

Susan Sarandon
Lepaskan: 2024-11-07 08:24:03
asal
363 orang telah melayarinya

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)
    }
}
Salin selepas log masuk

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));
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!