Agganciarsi ad un db esterno per fare il login

12 contenuti / 0 new
Ultimo contenuto
Ritratto di ziobudda
Offline
UberDrupalitaliano
Iscritto: 20 Mar 2009
Messaggi: 717
Agganciarsi ad un db esterno per fare il login

Ciao all, dovrei fare un sistema di backend per la gestione di alcuni dati, dove questi dati sono inseriti dall'utente.

Ho un problema sulle utenze: queste sono all'interno di un db esterno a cui mi devo collegare per effettuare il login. Non posso spostarle come gestione sul sistema di backend perché lo stesso db è usato da vari altri backend/frontend (uno anche in joomla a quanto ho potuto vedere)

Secondo voi come posso aggirare il problema ? Io pensavo ad un form di login "fake" che si connette al db remoto, controlla che sia corretta login/password e poi fa un controllo in locale per vedere se l'utente "login" esiste. Se esiste effettua il login, altrimenti lo salva nel sistema drupal ed effettua il login. In questo modo ho tutta la gestione dei permessi corretta e drupal riesce ad assegnare correttamente le utenze con i vari nodi.

Voi avete altre soluzioni da consigliarmi ?

M.

--
Michel 'ZioBudda' Morelli michel@ziobuddalabs.it
Sviluppo applicazioni CMS DRUPAL e web dinamiche (LAMP+Ajax)
Telefono: 0200619074
Telefono Cell: +39-3939890025 -- Fax: +39-0291390660

http://www.ziobuddalabs.it -- http://w

Ritratto di Pinolo
Offline
UberAdmin
UberAdmin
Iscritto: 17 Nov 2005
Messaggi: 3285

In passato ho fatto più o meno quello che hai descritto tu. Direi che è l'unica strada, se l'utente deve creare contenuti.

Ritratto di ziobudda
Offline
UberDrupalitaliano
Iscritto: 20 Mar 2009
Messaggi: 717

Ciao, avresti mica del codice da passarmi ? Ad esempio: come faccio a far scattare il login di drupal avendo login/password ?

M.

--
Michel 'ZioBudda' Morelli michel@ziobuddalabs.it
Sviluppo applicazioni CMS DRUPAL e web dinamiche (LAMP+Ajax)
Telefono: 0200619074
Telefono Cell: +39-3939890025 -- Fax: +39-0291390660

http://www.ziobuddalabs.it -- http://w

Ritratto di Pinolo
Offline
UberAdmin
UberAdmin
Iscritto: 17 Nov 2005
Messaggi: 3285

There's a function for that :P
user_external_login (user_login_submit per D7 - guarda i commenti a user_external_login)

Ritratto di ziobudda
Offline
UberDrupalitaliano
Iscritto: 20 Mar 2009
Messaggi: 717

Intanto grazie, poi dalle api "The user object must already be authenticated." che vorrebbe dire "L'oggetto utente deve essere già autenticato", ma forse in questo caso autenticated deve essere tradotto come "validato/valido". Giusto ?

Grazie.

M.

--
Michel 'ZioBudda' Morelli michel@ziobuddalabs.it
Sviluppo applicazioni CMS DRUPAL e web dinamiche (LAMP+Ajax)
Telefono: 0200619074
Telefono Cell: +39-3939890025 -- Fax: +39-0291390660

http://www.ziobuddalabs.it -- http://w

Ritratto di Pinolo
Offline
UberAdmin
UberAdmin
Iscritto: 17 Nov 2005
Messaggi: 3285

Immagino di sì, perché io non ho fatto altro che creare, appunto, un oggetto user valido. Questo quando ho creato l'utente. Quando l'utente esiste già su Drupal, basta caricare lo user esistente e l'oggetto è già disponibile.

Ritratto di mavimo
Offline
UberAdmin
UberAdmin
Iscritto: 1 Gen 2007
Messaggi: 3278

L'hook_user() con $op = 'login' dovrebbe fare al caso tuo, io l'ho usato per connettermi a server esterni per l'autenticazione e non ha dato problemi :)

Ritratto di GalloP
Offline
Drupalitaliano
Iscritto: 3 Giu 2010
Messaggi: 322

il modulo site network? scartato?

Ritratto di Pinolo
Offline
UberAdmin
UberAdmin
Iscritto: 17 Nov 2005
Messaggi: 3285

@mavimo, ma se ho capito bene, $op=login funziona *dopo* l'autenticazione. Prima devi usare user_external_login per autenticare l'utente. O no?

Ritratto di GalloP
Offline
Drupalitaliano
Iscritto: 3 Giu 2010
Messaggi: 322

Quindi per fare in modo che il mio sito Drupal accetti le credenziali di utenti creati esternamente Drupal,

la funzione con cui "litigare" è questa?

http://api.drupal.org/api/drupal/modules--user--user.module/function/use...
(function user_external_login_register)

Ritratto di Pinolo
Offline
UberAdmin
UberAdmin
Iscritto: 17 Nov 2005
Messaggi: 3285

Io ho fatto manualmente la creazione dell'utente e poi ho usato user_external_login. Probabilmente con questa funzione risparmi un po' di codice.

Offline
DrupalNiubbo
Iscritto: 10 Ott 2007
Messaggi: 26

puoi anche usare oauth