2014-07-04 2 views
17

Ho un problema quando si utilizza il plugin HybridAuth. Ho incluso il plugin come popup nella mia home page. Quando si fa clic sul pulsante di accesso dalla home page, il plugin verrà caricato in colorbox.HybridAuth non l'autenticazione quando si usa PHP personalizzato percorso sessione

Nel mio assistente non posso usare sessione php salvataggio predefinito percorso in modo che ho impostato come percorso php temp per salvare la sessione, come di seguito in index.php della mia cartella principale.

$dir = sys_get_temp_dir(); 
session_save_path($dir); 

Dopo aver aggiornato il codice, il plugin è l'autenticazione del social media che il cliente selezionando con successo e tornare al mio sito, ma non sta passando la condizione di seguito,

$hybridauth->isConnectedWith($_GET["connected_with"]) // it is always return false 

Nel secondo caso ho hanno aggiornato la sessione Salva percorso in index.php della cartella di plug-in anche, ma a in quel momento nel popup di login invece di mostrare UI login sta mostrando direttamente una pagina di errore come qui di seguito

"You cannot access this page directly." 

Qualsiasi aiuto sarebbe apprezzato. Grazie in anticipo.

+0

Anche io sto ottenendo lo stesso errore. Qualcuno può fornire una soluzione rapida per questo? – Sree

+1

@ user2916075: Può essere che non stia memorizzando la sessione utente che si è tentato di accedere. Hai verificato se la sessione esiste dopo il reindirizzamento al tuo sito? –

+0

[Attiva il debug] (http://hybridauth.sourceforge.net/userguide/Debugging_and_Logging.html) e darci la possibilità di vedere cosa l'API sta dicendo che il problema è. Sono disposto a scommettere che vedrai 'PHP session.name diff dal PHPSESSID predefinito. – Zombiesplat

risposta

1

Come spesso: RTM and discover the use of isConnectedWith

isConnectedWith() ritorno un vero o falso se l'utente corrente è collegato ad un dato provider. Hybrid_Auth :: isConnectedWith() usa le Sessioni PHP. Per saperne di più consultare la sezione HybridAuth Sessions.

Hybrid_Auth::isConnectedWith(provider) 

Dove fornitore è il nome del servizio testato. ad esempio: Hybrid_Auth :: isConnectedWith ('Twitter')

Assicurarsi che il $ _GET restituisce il buon nome del servizio.

Se si desidera un elenco di fornitori collegati: Hybrid_Auth :: getConnectedProviders()

Se si vuole ispezionare dati della sessione: Hybrid_Auth :: getSessionData()

API!

1

Il problema è il vostro percorso sessione predefinita:

$dir = sys_get_temp_dir(); 
session_save_path($dir); 

avrei print_r sessioni per vedere che cosa fu registrata. Perché hai problemi con il percorso di sessione predefinito? Non proverei a modificarlo e assicurarmi che funzioni prima. Questo sta alterando la funzionalità principale di HybridAuth.

Perché non si può utilizzare la sessione php salvataggio predefinito percorso? sei su un host condiviso?

-

Se si dispone di accesso alla shell assicurarsi che l'utente web server ha accesso in scrittura alla directory; che dovrebbe occuparsi del problema.

0

Aggiungere il proprio gestore di sessione personalizzato nella parte superiore di hybridauth/index.php (che si trova nella stessa dir di config.php e live.php). In questo modo Hybrid Auth utilizza il gestore di sessione personalizzato.