2013-02-20 12 views
5

Possiedo un'app Web di gioco 2.0.4 che utilizza SecureSocial per consentire agli utenti di accedere tramite provider di terze parti come Twitter, Facebook e Gmail. A quel punto, non sto usando il mio UsernamePasswordProvider; forse lo aggiungerò più tardiCome mantenere gli utenti di SecureSocial registrati?

Ho bisogno che i miei utenti restino loggati per un lungo periodo, forse una settimana. Nel mio caso, la sessione utente viene utilizzata solo per varie funzioni di comodità come le personalizzazioni, quindi i rischi associati alle sessioni di lunga durata sono decisamente meno importanti della comodità di non dover accedere ogni volta.

Sembra che attualmente la sessione sia memorizzata in un cookie effimero che scompare quando l'utente termina il browser. Esiste un parametro sessionTimeOut nel file di configurazione, ma lo scopo sembra terminare una sessione in un browser che rimane aperto per un lungo periodo di tempo. Almeno, la sessione viene interrotta immediatamente quando chiudo e riapro il browser anche se questo timeout è impostato su un numero elevato.

Qual è il modo consigliato di mantenere gli utenti connessi per un lungo periodo?

+0

Sembra che per i miei bisogni di base posso sbarazzarmi completamente di Securesocial e usare lo scriba, quindi piantare manualmente il cookie di sessione. Circa la stessa quantità di codice, ma molto più controllo sul comportamento. – AlexR

risposta

3

L'ultima istantanea da master (per Play 2.1) ha una nuova proprietà che rende persistente il cookie di autenticatore se necessario. Nel file di configurazione è possibile aggiungere:

securesocial.cookie.makeTransient=false 
securesocial.cookie.absoluteTimeoutInMinutes=1440 
securesocial.cookie.idleTimeoutInMinutes=1440 

che renderebbe il cookie persistenti e rendere la sessione ultimi 24hs.

+0

Potresti fornire una soluzione per questo? Grazie. – user237865

+1

Ho appena ampliato la risposta. Questo dovrebbe renderlo più chiaro. – Jorge

2

for Gioca 2.2 è necessario aggiungere la sezione cookie al securesocial.conf di file come:

cookie { 
    name=id 
    path=/ 
    httpOnly=true 
    idleTimeoutInMinutes=1440 
    absoluteTimeoutInMinutes=1440 
} 
2

il file di configurazione sono definiti e utilizzati qui: CookieAuthenticator

è possibile mouse sopra la variabile e vedere come le configurazioni sono usate.

i due config: absoluteTimeout e idleTimeout viene utilizzato per scopi diversi, questo line controlla quando sarà il cookie essere visti come validi

quindi vi suggerisco di utilizzare un valore molto più grande per absoluteTimeoutInMinutes rispetto agli altri

Problemi correlati