9

Sto facendo un progetto con Flask, Gevent e socket Web utilizzando l'ambiente del server di sviluppo delle boccette. Ho usato flask_login. QuiFlask - Come ottenere ID sessione

  1. come posso ottenere l'ID sessione univoca per ogni connessione?
  2. Desidero memorizzare il SessionID nel database ed eliminarlo una volta che il client si disconnette.
  3. Come ottenere connessioni attive totali

    from flask_login import * 
    login_manager = LoginManager() 
    login_manager.setup_app(app) 
    
    @app.route("/", methods=["GET", "POST"]) 
    def login(): 
        login_user([username], remember):  
    
    @app.route("/logout") 
    @login_required 
    def logout(): 
        logout_user() 
    
+0

Volete un id di sessione per ogni _connection_ o each _logged in user_? –

+0

hi Burhan, ho bisogno di ogni utente registrato. Grazie in anticipo fratello. – user2104391

+0

Come hai usato 'flask_login'? Pubblica quella parte del tuo codice. –

risposta

17

Non v'è alcun ID di sessione.

Le sessioni in Flask sono semplicemente wrapper su cookie. Ciò che si salva su di esso è firmato digitalmente e inviato come cookie al cliente. Quando si effettua una richiesta, quel cookie viene inviato al server e quindi verificato e trasformato in un oggetto Python.

AFAIK, Flask-Login salva sulla sessione l'ID utente.

Per ottenere connessioni attive totali, è possibile:

  1. Al login, generare un ID univoco e salvarlo sulla sessione (flask.session['uid'] = uuid.uuid4(), per esempio), quindi salvarlo sul database.
  2. Al termine del logout, eliminare quell'ID univoco dalla sessione (del flask.session['uid']) e anche dal database.
  3. recuperare il conteggio di sessioni attive utilizzando il metodo preferito (ORM/SQL Raw)
+2

id di sessione è il contenuto del cookie e si può ottenere da session.sid –

-1

l'ID di sessione è in: flask.session [ '_ id']

+0

'flask.session [ '_ id']' viene utilizzato da Flask Login per implementare [protezione Session] (https: // pallone-login. readthedocs.io/en/latest/#session-protection). Le sessioni "Standard" Flask non hanno un SID. –

+0

Burhan sta usando flask_login ... – Matt