2011-12-07 10 views
8

Teraz ulepszam swoje umiejętności tornado i mam pytanie dotyczące auth użytkownika.Uwierzytelnianie użytkownika w aplikacji tornado websocket

Moim rozwiązaniem jest stworzenie bezpiecznego tokena na pierwszej stronie, a następnie wysłanie go z innymi danymi, od javascript do serwera tornado, gdzie sprawdzanie i autoryzacja użytkownika.

myślę o ciasteczka, ale nie wiem jak mogę odczytać pliki cookie w WebSocketHandler.on_message

co myślisz? i gdzie się mylę? Dzięki

Odpowiedz

10

Proponuję przeczytać overview section w dokumentacji.

Nie powinno być pewne istotne treści tam:

EDIT

Właśnie uświadomiłem sobie pytanie jest Abou t websockets. Wierzę, że można stosować metodę ty zarys:

  • Tworzenie cookie w części non-websocket swojej aplikacji
  • Sprawdź cookie w przewodnika websocket

powinny mieć możliwość dostępu nagłówki żądań wewnątrz modułu websocket za pomocą self.request.headers.

+1

oh, dzięki Codeape! użyj 'self.request.headers' websocket handler save mój dzień) – yessi

+0

Zobacz odpowiedź tutaj: http://stackoverflow.com/questions/4311180/how-to-send-cookies-when-connecting-to-socket-io- via-websockets – nathancahill

6

Klient może prawdopodobnie zrobić nagłówki żądania z Fake: 'user = "ImFkbWxxxx == | xxxxxxxxxx | 9d847f58a6897df8912f011f0a784xxxxxxxxxx"'

myślę następujące podejście jest lepsze. Jeśli użytkownik nie istnieje lub jeśli id ​​cookies nie jest prawidłowa lub sfałszowane, a następnie get_secure_cookie funkcja nie zwróci użytkownikowi

class WebSocketHandler(tornado.websocket.WebSocketHandler): 

    def open(self): 
     user_id = self.get_secure_cookie("user") 
     if not user_id: return None 
     ... 
Powiązane problemy