Saya secara manual membuat pengguna secara terprogram, dan saya ingin masuk ke pengguna yang baru dibuat. WP membuatnya mudah untuk mengakses kata sandi hash, tetapi bukan versi plaintext. Apakah ada cara untuk menggunakan wp_signon () tanpa kata sandi plaintext?
Saya menemukan satu orang yang mengaku telah melakukan ini di sini , tetapi tidak berhasil bagi saya.
TERIMA KASIH!
login
authentication
emersonthis
sumber
sumber
Jawaban:
wp_set_auth_cookie()
akan login pengguna tanpa harus tahu kata sandi mereka.sumber
is_user_logged_in()
sepertinya tidak berfungsi. Apakah Anda tahu jika itu melihat sesuatu yang berbeda dari cookie?wp_set_current_user
sebelum masuk.wp_set_auth_cookie()
fungsi masuk saya. Saya kira saya perlu memikirkan kembali itu. Saya juga akan mencari wp_set_current_user dan melaporkan kembali. Terima kasih banyak atas bantuannya!Kode berikut berfungsi untuk login otomatis, tanpa kata sandi!
sumber
get_user_by()
mengembalikan false saat gagal, jadi Anda harus memeriksa false sebagai ganti objek WP_ErrorSaya telah menemukan solusi lain di sini yang menggunakan pendekatan yang lebih baik (setidaknya menurut saya ...). Tidak perlu mengatur cookie apa pun, itu menggunakan API Wordpress:
Saya pikir kode ini cukup jelas:
Filter mencari objek WP_User untuk nama pengguna yang diberikan dan mengembalikannya. Panggilan ke fungsi
wp_set_current_user
dengan objek WP_User dikembalikan olehwp_signon
, centang dengan fungsiis_user_logged_in
untuk memastikan Anda masuk, dan hanya itu!Sepotong kode yang bagus dan bersih menurut saya!
sumber
$credentials
kosong atau tidak. Jika array tidak kosong (yang merupakan kasus dalam jawaban saya), nilai-nilai dari array digunakan untuk mengotentikasi pengguna.Ini bekerja dengan baik untuk saya:
sumber
Selain Mike, Paul dan Sjoerd:
Untuk menangani
login.php
pengalihan dengan lebih baik :Untuk ditempatkan
wp-config.php
tepat setelahFYI
Berdasarkan solusi di atas, saya telah merilis sebuah plugin untuk menjaga pengguna tetap masuk dari satu wordpress ke yang lain dengan menyinkronkan data pengguna dan sesi cookie:
https://wordpress.org/plugins/user-session-synchronizer/
sumber