2013-11-04 19 views
11

Sto usando la struttura del framework Web Python. Uso le sessioni nella mia app. Per la mia app chiamata main, ho l'impostazione main.permanent_session_lifetime = timedelta(days=5), in modo che un utente rimanga connesso per 5 giorni dopo l'accesso. Ma anche un utente attivo verrà disconnesso dopo 5 giorni. Vorrei che la scadenza scada ogni volta che visitano il sito, quindi ti disconnetti solo dopo 5 giorni di inattività . La maggior parte dei siti funziona in questo modo. Come faccio a farlo con Flask?Ripristino del tempo di scadenza per un cookie in Flask

+1

Flask cerca di dare gli strumenti per scrivere qualcosa del genere da soli. Il modo in cui definisci "attività" dipende dal sito web. "Attività" è in visita nel sito o qualcosa di simile all'acquisto di un prodotto? Come puoi vedere, non potrebbe esserci un'opzione come "inattività", dovresti implementarla tu stesso. –

+0

Per il mio caso, attività significa semplicemente visitare il sito. Se visitano una qualsiasi pagina del sito prima che il cookie scada, vorrei che la scadenza fosse ripristinata a 5 giorni da quel momento. –

risposta

18

È possibile rinnovare la sessione al client a ogni richiesta utilizzando un gestore @before_request.

provare quanto segue:

@app.before_request 
def func(): 
    session.modified = True 
+0

Funziona magnificamente. In realtà ho desiderato la funzione '@ app.before_request' per altri motivi, quindi è fantastico conoscerla. –

+0

Questo non funziona mentre si usano le sessioni lato server (flask-kvsession). Qualche idea su come aggiustarlo? – zengr

+2

@zengr questo è un problema di flask-kvsession che si dice sia "una sostituzione drop-in per la gestione delle sessioni basata su cookie firmata da Flask". Non fa il suo lavoro completamente. Pubblica un bug report. Una soluzione potrebbe essere chiamare il metodo '.regenerate()'. –

Problemi correlati