Login in WordPress utilizzando i dati di un database esterno

23 mag 2012, 23:05:21
Visualizzazioni: 15.7K
Voti: 3

Ho un sito WordPress e un database esterno (non quello di WP) contenente gli utenti. Il processo di inserimento in quella tabella utilizza lo stesso algoritmo di WordPress. Quello che mi serve fare è effettuare il login in WordPress ma utilizzando questo database esterno che si trova sullo stesso host. Ho controllato questi link http://www.tyssendesign.com.au/articles/cms/connecting-to-external-database-from-within-wordpress/ e http://wordpress.org/extend/plugins/external-database-authentication/ ma il primo non è quello che cerco e il secondo non è compatibile con WP 3+ (io uso la 3.3.1). Avete suggerimenti, documentazione o altro?

0
Tutte le risposte alla domanda 5
3

Puoi sovrascrivere la funzione core wp_authenticate.

Dovrai creare un plugin personalizzato e dichiarare una nuova versione di wp_authenticate. La funzione accetta un nome utente e una password e restituisce un oggetto WP $user.

wp_authenticate è una funzione 'pluggable' e si trova nel file wp-includes/pluggable.php.

23 mag 2012 23:30:46
Commenti

questa funzione può funzionare nel file functions.php del mio tema? Inoltre, come posso connettermi a un database esterno e verificare lì username e password?

ReynierPM ReynierPM
23 mag 2012 23:38:06

La funzione deve essere in un plugin, non funzionerà nel functions.php (ha a che fare con il modo in cui le funzioni plugable vengono caricate in WP).

Roscius Roscius
24 mag 2012 16:23:33

Potresti usare le funzioni php mysql/mysqli per connetterti al database e validare username e password, la connessione al database sarebbe semplicemente l'uso standard del database in php. Sarebbe comunque bene comprendere i processi di hashing/salting delle password per garantire le migliori pratiche per la memorizzazione delle password.

Roscius Roscius
24 mag 2012 16:26:59
0

Avevo bisogno di più funzionalità rispetto a quelle che potevo trovare altrove, quindi ho scritto il mio plugin - External Login.

Offre queste principali caratteristiche:

  • Mappare una struttura di tabella DB diversa per renderla compatibile con i campi di WordPress
  • Gestire diversi metodi di hashing dal tuo database esterno (bcrypt, MD 2 4 e 5, SHA 256 384 e 512, e molti altri ancora)
  • Consentire diversi metodi di salting
  • Generare una copia dell'utente nel database per continuare a utilizzare le funzionalità comuni di WordPress con utenti e ruoli
  • Mappare i ruoli dal tuo "database esterno" a quelli presenti in WordPress, ad esempio uno studente nel "database esterno" diventa un editor nel database di WordPress.

Fammi sapere se hai bisogno di un'altra funzionalità :)

https://en-gb.wordpress.org/plugins/external-login/

7 feb 2018 22:45:09
1

Hai provato il plugin External Database Authentication? Solo perché non è stato aggiornato da un po' non significa che non funzioni necessariamente. Almeno puoi dare un'occhiata al loro codice sorgente per vedere come hanno realizzato ciò che hanno fatto e usarlo come base per ottenere ciò di cui hai bisogno.

Ecco il codice http://plugins.trac.wordpress.org/browser/external-database-authentication/trunk/ext_db_auth.php

23 mag 2012 23:13:09
Commenti

Sì, vedo quel plugin ma è un po' complesso perché non sono un esperto di WP e molte cose sono nuove per me

ReynierPM ReynierPM
23 mag 2012 23:37:02
1

Ho appena aggiornato quel vecchio plugin per le mie esigenze. Puoi trovare l'aggiornamento su http://www.7mediaws.org/extend/plugins/external-db-auth-reloaded

5 nov 2012 02:55:55
Commenti

pagina non trovata :/

PayteR PayteR
27 set 2017 00:46:37
0

Sì, il tuo plugin è fantastico. Quello che ti serve per migliorare e finalizzare il tuo plugin è che nelle versioni più recenti di WordPress, ci sono due tabelle diverse che contengono i dati degli utenti. Sono wp_user e wp_usermeta. E nel plugin, è fornita solo una tabella per l'autenticazione. Quindi se questa funzionalità funziona correttamente, sicuramente il tuo plugin sarà un successo al 100%.

Inoltre, c'è un bug. Dato che c'è solo una tabella per l'autenticazione, non sono riuscito ad autenticare i ruoli degli utenti e sincronizzarli. Questo significa che quando abilito il login esterno, al momento del logout e al successivo login, ho il ruolo di sottoscrittore, che ho specificato nel caso in cui nessun ruolo corrisponda. Quindi ho perso anche i miei privilegi di amministratore. Per favore, aiutami e capisci il problema.

30 mag 2019 17:46:01