Back to top

Autore Topic: Login su database Joomla [RISOLTO]  (Letto 6546 volte)

Offline october

  • Esploratore
  • **
  • Post: 66
  • Sesso: Maschio
    • Mostra profilo
Login su database Joomla [RISOLTO]
« il: 27 Ott 2012, 22:31:09 »

Ho cercato e ricercato su internet e nel forum, ho trovato tante  discussioni ma nessuna ha soddisfatto la mia necessità.


Sto costruendo un'APP per Android/iOS e vorrei fare il login su un database di Joomla.
Premetto che non ho problemi di accesso dall'esterno al database.


ho trovato come generare una password Joomla in questo modo:


Codice: [Seleziona]
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword("yourpassword", $salt);
$password = $crypt.':'.$salt;


In questo modo se faccio il login con la password generata funziona.
Il problema è che la password generata non è uguale a quella che c'è nella tabella users e quindi non posso fare il confronto dalla app.

[/code]
« Ultima modifica: 01 Nov 2012, 16:31:22 da october »

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32045
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Login su database Joomla
« Risposta #1 il: 28 Ott 2012, 07:11:09 »
Ciao
Da come descrivi ciò che fai non capisco alcune cose, perchè prima generi una password e dove la generi, poi dove è che funziona infine quale e con chi la confronti. Credo che fai delle operazioni in più o comunque non capisco la logica.

Offline october

  • Esploratore
  • **
  • Post: 66
  • Sesso: Maschio
    • Mostra profilo
Re:Login su database Joomla
« Risposta #2 il: 28 Ott 2012, 10:27:00 »
ok descrivo meglio quello che vorrei fare e a cosa mi serve.
Sto progettando un'APP per smartphone che deve interagire con un database di Joomla di un sito esistente.


Ogni utente deve poter vedere i suoi dati, quindi deve fare il login.
Per poter fare il login ho pensato di passare i parametri (username e password) via post ad una pagina php.


Quindi li fare il confronto della username e password.
Se dai dati che vengono passati genero la password come dal codice che ho scritto nel post precedente, questa comunque non risulta uguale a quella presente nel campo password della tabella user, quindi non riesco a ricavare l'esito.


Il codice di confronto che farei sarebbe:
Codice: [Seleziona]
select * from users where username = $_POST['username'] and password = $_POST['password']

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32045
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Login su database Joomla
« Risposta #3 il: 28 Ott 2012, 10:59:54 »
Credo che non devi generare un nuovo salt ma leggerlo dal db altrimenti le pw non coincideranno mai.
Se può esserti utile ti linko questo post ove per una altra applicazione e col codice postato si permette il login da db user joomla.
http://xataface.com/forum/viewtopic.php?t=4459#22040
« Ultima modifica: 28 Ott 2012, 11:04:44 da tomtomeight »

Offline october

  • Esploratore
  • **
  • Post: 66
  • Sesso: Maschio
    • Mostra profilo
Re:Login su database Joomla
« Risposta #4 il: 28 Ott 2012, 16:10:06 »
Ma se la password è composta da MD5 + Salt potrei fare il controllo solo sulla prima parte MD5.


Il problema è che generando solo MD5 comunque non coincide con quella del database.

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32045
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Login su database Joomla
« Risposta #5 il: 28 Ott 2012, 16:16:10 »
Non ti ho detto di non usare il salt ma di non generarlo di nuovo ma leggerlo come nella funzione serialize nel link che ti ho postato.

Offline october

  • Esploratore
  • **
  • Post: 66
  • Sesso: Maschio
    • Mostra profilo
Re:Login su database Joomla
« Risposta #6 il: 28 Ott 2012, 16:31:52 »
Ho letto il link che mi hai postato, ma non sono riuscito a capirlo.

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32045
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Login su database Joomla
« Risposta #7 il: 28 Ott 2012, 16:34:28 »
Copia la parte di codice che lui usa per far loggare gli utenti di quella applicazione sul db joomla, in fondo è lo stesso che vuoi fare tu con la tua applicazione.

Offline october

  • Esploratore
  • **
  • Post: 66
  • Sesso: Maschio
    • Mostra profilo
Re:Login su database Joomla
« Risposta #8 il: 28 Ott 2012, 16:44:12 »
Codice: [Seleziona]
Forse manca un pezzo, il risultato è questo:
Fatal error: Class 'Dataface_Application' not found in....
devo importare altro d
al framework di joomla ?

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32045
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Login su database Joomla
« Risposta #9 il: 28 Ott 2012, 16:47:33 »
Quello non è il framework di joomla, a te interessa solo la parte di codice relativa alle variabili interessate al login.

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32045
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Login su database Joomla
« Risposta #10 il: 28 Ott 2012, 16:50:43 »
Ho spostato nella sezione Sviluppo, vediamo se qualche guru ti viene in aiuto.

Offline october

  • Esploratore
  • **
  • Post: 66
  • Sesso: Maschio
    • Mostra profilo
Re:Login su database Joomla
« Risposta #11 il: 28 Ott 2012, 16:51:38 »
Io ti ringrazio per il tempo che mi stai dedicando.


Mi potresti scrivere qui il codice che dovrei copiare ?  ;D

Offline october

  • Esploratore
  • **
  • Post: 66
  • Sesso: Maschio
    • Mostra profilo
Re:Login su database Joomla
« Risposta #12 il: 28 Ott 2012, 16:52:01 »
Ho spostato nella sezione Sviluppo, vediamo se qualche guru ti viene in aiuto.


grazie

Offline october

  • Esploratore
  • **
  • Post: 66
  • Sesso: Maschio
    • Mostra profilo
Re:Login su database Joomla
« Risposta #13 il: 28 Ott 2012, 17:00:10 »
Secondo me il problema è la generazione dell'MD5.


Domanda: la password è formata in questo modo ?
Codice: [Seleziona]
$password = $md5 . ':' . $salt


Se io genero solo la prima parte, cioè solo md5, dovrebbe corrispondere alla prima parte contenuta nella tabella ?

Offline october

  • Esploratore
  • **
  • Post: 66
  • Sesso: Maschio
    • Mostra profilo
Re:Login su database Joomla
« Risposta #14 il: 28 Ott 2012, 17:11:02 »
oooooooooooook ce l'ho fatta, grazie all'aiuto di tomtomheight.


ecco il codice finale:
Codice: [Seleziona]

function password__serialize($username, $password){
$query = "SELECT id, gid, block, password, usertype FROM jos_users where username='".$username."'";
   $risultato = mysql_query($query) or die("Query fallita: " . mysql_error() );
   $linea = mysql_fetch_array($risultato, MYSQL_ASSOC);
    /* Liberazione delle risorse del risultato */
    mysql_free_result($risultato);


   $arraypass=explode(":", $linea['password']);
   $salt=$arraypass[1];
   
   $ret = md5(trim($password).$salt).":".$salt;
   return $ret;
}
   


$username = "pippo";
$password = "pippo";


echo password__serialize($username, $password);




Mi viene restituiita esattamente la password salvata nel database, ora posso fare tutti i controlli che voglio.

 



Web Design Bolzano Kreatif