Cara melaksanakan log masuk SSO dalam PHP: 1. Pengguna memasuki halaman log masuk untuk menjana SID tersuai dan menulisnya ke redis dan kuki 2. Dalam pembina BaseController perniagaan, tulis operasi untuk mengemas kini redis; 3. js Bina acara lompat, dan kemudian pelayan menyemak redis pengguna berdasarkan SID.
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer Dell G3.
Bagaimana untuk melaksanakan log masuk SSO dalam PHP?
Reka bentuk log masuk tunggal SSO dan pelaksanaan PHP
Adalah disyorkan untuk membiasakan diri dengan tanda tunggal -pada konsep berkaitan SSO dahulu.
1 SSO: satu log masuk, semua sistem berkaitan boleh masuk, tidak perlu log masuk berulang kali
2. nama domain peringkat atas] kuki S [ID] [SID merentas domain]
3 Abaikan sesi PHP dan simpan maklumat pengguna dalam redis
4 BaseController Constructor perniagaan, tulis operasi untuk mengemas kini redis dan kemas kini masa tamat bagi keadaan log masuk pengguna yang disimpan dalam redis -- tujuannya adalah untuk mensimulasikan tamat tempoh sesi
5. Pelaksanaan SSO khusus log masuk tunggal: (PHP sessionId ditamatkan ) -- Api log masuk pengguna yang disahkan diletakkan pada pelayan sso, dan halaman log masuk lain memanggil antara muka ini.
1) Pengesahan log masuk tunggal SSO: Pengguna memasuki halaman log masuk untuk menjana SID tersuai dan menulisnya ke dalam redis dan kuki serta melaraskan api pengesahan SSO untuk lulus ikat pengguna kepada SID dalam kuki (LoginAction/ssologin/line 321: inside api::get)
Token yang dijana oleh pelayan tempatan (kedua-duanya adalah medan tersuai dan peraturan) disimpan dalam redis. Tempoh sah disyorkan untuk 30 minit,
2) Dalam pembina BaseController perniagaan, tulis operasi untuk mengemas kini redis Apabila perniagaan datang, kemas kini SID dan tempoh sah token yang sepadan (iaitu,. jika tiada operasi selama 30 minit, keadaan log masuk tamat tempoh), -- tujuannya adalah untuk mensimulasikan tamat tempoh sesi
3) Nama domain tempat SID disimpan dalam kuki mestilah domain peringkat atas nama seperti [.example.com], dan tempoh sah kuki disyorkan untuk menjadi satu bulan
4) Pengguna terus mengklik subdomain lain dari halaman nama domain yang baru log masuk< pautan tidak perlu mempunyai SID atau token teks biasa, kerana kuki akan membawa SID itu sendiri Berdasarkan SID dalam kuki, pelayan pergi ke antara muka pengesahan SSO untuk melihat sama ada data redis yang sepadan dengan SID adalah. sah;
6. Log masuk silang domain Contohnya, saya ingin log masuk ke nama domain yang bukan [.example.com], seperti: erji.mogo. com, tetapi saya menggunakan sistem pengesahan SSO yang sama Apakah yang perlu saya lakukan?
Anda masih berada di halaman nama domain yang baru anda log masuk. JS membina acara lompatan?&SID=xxx sudah cukup. Anda boleh menggunakan jQuery.cookie.js untuk mendapatkan SID daripada kuki , dan kemudian bahagian pelayan juga Semak sama ada data redis pengguna telah tamat tempoh berdasarkan SID.
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan log masuk SSO dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!