9

Wykonuję projekt z flask, Gevent i gniazdem internetowym przy użyciu środowiska serwera rozwoju kolby. Użyłem flask_login. W tym miejscu można uzyskaćFlask - Jak uzyskać identyfikator sesji

  1. Jak mogę uzyskać unikalny identyfikator sesji dla każdego połączenia?
  2. Chcę zapisać SessionID w bazie danych i usunąć go, gdy klient się rozłączy.
  3. Jak uzyskać całkowite aktywne połączenia

    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

Chcesz identyfikator sesji dla każdego _connection_ lub każdy _ zalogowany użytkownik_? –

+0

Cześć Burhan, potrzebuję każdego zalogowanego użytkownika. Z góry dzięki, bracie. – user2104391

+0

W jaki sposób użyłeś 'flask_login'? Opublikuj tę część swojego kodu. –

Odpowiedz

17

Nie ma identyfikator sesji.

Sesje w kolbie są po prostu owijkami nad ciasteczkami. To, co na nim zapiszesz, jest podpisane cyfrowo i wysłane jako plik cookie do klienta. Po wysłaniu żądania plik cookie jest wysyłany na serwer, a następnie weryfikowany i przekształcany w obiekcie Python.

AFAIK, Flask-Login zapisuje w sesji identyfikator użytkownika.

Aby uzyskać całkowity aktywnych połączeń, można:

  1. Przy logowaniu wygenerowania unikalnego identyfikatora i zapisz go na sesji (flask.session['uid'] = uuid.uuid4(), na przykład), a następnie zapisać go w bazie danych.
  2. Podczas wylogowania usuń unikalny identyfikator z sesji (del flask.session['uid']), a także z bazy danych.
  3. pobrać liczby aktywnych sesji za pośrednictwem swojego ulubionego sposobu (ORM/Raw SQL)
+2

Identyfikator sesji to zawartość pliku cookie, który można pobrać z pliku session.sid –

-1

Identyfikator sesji jest: flask.session [ '_ id']

+0

'flask.session ['_ id']' jest używany przez Flask-Login, aby zaimplementować [Ochrona sesji] (https: // flask-login. readthedocs.io/en/latest/#session-protection). "Standardowe" sesje Flask nie mają identyfikatora SID. –

+0

Burhan używa flask_login ... – Matt

Powiązane problemy