Situs saya perlu diintegrasikan dengan perangkat lunak pihak ke-3, yang akan hidup pada sub-domain sendiri, yang dihosting oleh perusahaan perangkat lunak. Saya perlu memberikan titik akhir kepada pengembang pihak ke-3 yang dapat mereka gunakan untuk melakukan panggilan API (ke situs wordpress saya) untuk memungkinkan pengguna situs saya mengakses sub-domain.
Situs lain perlu mengautentikasi pengguna dari situs saya melalui semacam API.
Saya tidak yakin harus mulai dari mana, tetapi menurut saya ini sudah diketahui oleh orang yang lebih pintar dari saya. Terima kasih sebelumnya!
api
authentication
customization
single-sign-on
emersonthis
sumber
sumber
Jawaban:
Masalah Skrip Lintas Situs
Anda tidak dapat mentransfer cookie autentik WP antar domain. Anda juga tidak ingin menyimpan kata sandi plaintext untuk masuk ke instalasi WP lain secara terprogram. Jadi, Anda harus meminta pengguna masuk ke WordPress, dan kemudian mengakses status login mereka melalui titik akhir API dari situs pihak ketiga. Ini memungkinkan WordPress menangani semua otentikasi. Ini cukup aman karena pengguna harus masuk secara fisik ke sisi WP agar titik akhir API untuk menyajikan data kepada pihak ketiga.
Buat Titik Akhir API
Lihat artikel ini yang baru saja saya tulis di sini: http://coderrr.com/create-an-api-endpoint-in-wordpress/
Anda juga dapat melihat demonstrasi kode di sini: https://gist.github.com/2982319
Anda harus mencari tahu logika untuk kebutuhan aplikasi Anda sendiri, tetapi ini akan memungkinkan Anda untuk membuat titik akhir di mana Anda dapat melayani apa pun yang Anda inginkan dari sisi WordPress.
Karena Anda menggunakan WordPress sebagai situs otentikasi, Anda dapat menggunakan tanda centang seperti is_user_logged_in (). Jika mereka masuk, kembalikan objek pengguna ke pihak ketiga dengan informasi apa pun yang mereka butuhkan.
Masuk Dari Pihak Ketiga
Dari pihak ketiga, mereka dapat menautkan ke halaman login Anda untuk pengalaman yang mulus menggunakan redirect_to kueri var. Setelah masuk, itu akan mengembalikan mereka ke situs pihak ketiga.
Login Jauh
Jika Anda perlu login pengguna ke WordPress dari situs pihak ketiga, Anda dapat menggunakan beberapa fungsi WP sederhana yang tercantum di situs ini: http://kuttler.eu/code/log-in-a-wordpress-user-programmatically/
Anda pasti harus menggunakan rahasia bersama dan membuat hash berdasarkan rahasia itu untuk menjaga keamanan. Pada dasarnya, inilah yang akan terlihat:
Pihak ketiga mengirimkan permintaan dengan cap waktu dan token yang dihasilkan oleh rahasia bersama:
Instalasi WordPress menerima permintaan:
sumber
counter
alih-alihtime()
dan meneruskannya dengan permintaan. Kedua belah pihak menjaga penghitung terakhir berlalu, dan ketika api menerima permintaan dengan penghitung baru, itu memverifikasi bahwa yang baru lebih besar dari yang terakhir. Dengan cara ini, penundaan tidak dapat membahayakan.