Autentificare în WordPress folosind date din baza de date externă

23 mai 2012, 23:05:21
Vizualizări: 15.7K
Voturi: 3

Am un site WordPress și o bază de date externă (care nu este cea din WordPress) cu utilizatori. Procesul de inserare în acea tabelă folosește același algoritm ca WordPress. Ce trebuie să fac este să mă autentific în WordPress dar folosind această bază de date externă, care se află pe același server. Am verificat aceste linkuri http://www.tyssendesign.com.au/articles/cms/connecting-to-external-database-from-within-wordpress/ și http://wordpress.org/extend/plugins/external-database-authentication/ dar primul nu este ceea ce caut, iar al doilea nu este compatibil cu WordPress 3+ și eu folosesc 3.3.1. Aveți sugestii, documentație sau alte resurse?

0
Toate răspunsurile la întrebare 5
3

Puteți suprascrie funcția de bază wp_authenticate.

Va trebui să creați un plugin personalizat și să declarați o versiune nouă a wp_authenticate. Funcția acceptă un nume de utilizator și o parolă și returnează un obiect WP $user.

wp_authenticate este o funcție 'pluggable' și se găsește în fișierul wp-includes/pluggable.php.

23 mai 2012 23:30:46
Comentarii

poate funcționa această funcție în fișierul functions.php din tema mea? De asemenea, cum mă pot conecta la o bază de date externă și verifica acolo numele de utilizator și parola?

ReynierPM ReynierPM
23 mai 2012 23:38:06

Funcția trebuie să fie într-un plugin, nu va funcționa în functions.php (are legătură cu modul în care funcțiile plugable sunt încărcate în WP).

Roscius Roscius
24 mai 2012 16:23:33

Poți folosi funcțiile PHP mysql/mysqli pentru a te conecta la baza de date și a valida numele de utilizator și parola, conexiunea la baza de date ar fi doar o utilizare standard a bazelor de date în PHP. Totuși, ar fi bine să înțelegi procesele de hashing și salting ale parolelor pentru a asigura cele mai bune practici de stocare a parolelor.

Roscius Roscius
24 mai 2012 16:26:59
0

Aveam nevoie de mai multe funcționalități decât puteam găsi în alte locuri, așa că am scris propriul meu plugin - External Login.

Acesta are următoarele caracteristici principale:

  • Maparea unei structuri diferite de tabele din baza de date pentru a fi compatibilă cu câmpurile WordPress
  • Gestionarea diferitelor metode de hash din baza ta de date externă (bcrypt, MD 2 4 și 5, SHA 256 384 și 512, și multe altele)
  • Permiterea diferitelor metode de salting
  • Generarea unei versiuni copiate a utilizatorului în baza de date pentru a putea continua să folosești funcțiile comune WordPress pentru utilizatori și roluri
  • Maparea rolurilor din 'baza ta de date externă' la cele găsite în WordPress, de exemplu un student în 'baza de date externă' devine editor în baza de date WordPress.

Spune-mi dacă ai nevoie de alte funcționalități :)

https://ro.wordpress.org/plugins/external-login/

7 feb. 2018 22:45:09
1

Ai încercat pluginul External Database Authentication? Doar pentru că nu a fost actualizat de ceva timp, nu înseamnă că nu va funcționa neapărat. Cel puțin, poți analiza codul sursă pentru a vedea cum au realizat anumite funcționalități și să-l folosești ca bază pentru a implementa ceea ce ai nevoie.

Iată codul: http://plugins.trac.wordpress.org/browser/external-database-authentication/trunk/ext_db_auth.php

23 mai 2012 23:13:09
Comentarii

Da, văd acel plugin, dar este puțin complex pentru mine deoarece nu sunt expert în WordPress și multe lucruri sunt noi pentru mine

ReynierPM ReynierPM
23 mai 2012 23:37:02
1

Tocmai am actualizat acel vechi plugin pentru nevoile mele. Puteți găsi actualizarea pe http://www.7mediaws.org/extend/plugins/external-db-auth-reloaded

5 nov. 2012 02:55:55
Comentarii

pagina nu a fost găsită :/

PayteR PayteR
27 sept. 2017 00:46:37
0

Da, pluginul tău este minunat. Ceea ce trebuie să îmbunătățești și să finalizezi în plugin este faptul că în versiunile mai noi de WordPress există două tabele diferite care conțin datele utilizatorilor. Acestea sunt wp_user și wp_usermeta. În plugin, este furnizat doar un singur tabel pentru autentificare. Deci, dacă această funcționalitate va fi implementată corect, cu siguranță pluginul tău va fi 100% reușit.

Un alt lucru este că există o problemă. Deoarece există un singur tabel pentru autentificare, nu am putut autentifica rolurile utilizatorilor și să le sincronizez. Asta înseamnă că atunci când activez autentificarea externă, în momentul în care mă deconectez și mă conectez data viitoare, am rolul de subscriber, pe care l-am specificat în cazul în care nu se potrivește niciun rol. Așadar, am pierdut și drepturile de administrator. Te rog să mă ajuți și să înțelegi situația.

30 mai 2019 17:46:01