2011-12-07 11 views
8

Bây giờ, tôi cải thiện kỹ năng lốc xoáy của mình và có câu hỏi về xác thực người dùng.Xác thực người dùng trong ứng dụng websocket lốc xoáy

Và giải pháp của tôi là tạo mã thông báo bảo mật trên trang đầu tiên và gửi tiếp cùng với dữ liệu khác, từ máy chủ javascript đến lốc xoáy, nơi kiểm tra và xác thực người dùng.

tôi nghĩ rằng về cookie nhưng tôi không biết làm thế nào tôi có thể đọc cookie trong WebSocketHandler.on_message

những gì bạn nghĩ? và tôi sai ở đâu? Cảm ơn

Trả lời

10

Tôi khuyên bạn nên đọc overview section trong tài liệu.

Nên có một số nội dung có liên quan có:

EDIT

Tôi chỉ nhận ra câu hỏi của bạn là abou t websockets. Tôi tin rằng bạn có thể sử dụng phương pháp này bạn phác thảo:

  • Tạo một cookie trong phần không WebSocket của ứng dụng của bạn
  • Kiểm tra các tập tin cookie trong xử lý WebSocket

Bạn sẽ có thể truy cập các tiêu đề yêu cầu bên trong trình xử lý websocket sử dụng self.request.headers.

+1

oh, thanks Codeape! sử dụng trình xử lý webs' self.request.headers' websocket lưu ngày của tôi) – yessi

+0

Xem câu trả lời tại đây: http://stackoverflow.com/questions/4311180/how-to-send-cookies-when-connecting-to-socket-io- thông qua websockets – nathancahill

6

Một khách hàng có lẽ có thể làm cho các tiêu đề yêu cầu với một người dùng giả: 'user = "ImFkbWxxxx == | XXXXXXXXXX | 9d847f58a6897df8912f011f0a784xxxxxxxxxx"'

Tôi nghĩ rằng cách tiếp cận sau đây là tốt hơn. Nếu người dùng không tồn tại hoặc nếu id cookie không chính xác hoặc giả mạo, thì hàm get_secure_cookie sẽ không trả lại người dùng

class WebSocketHandler(tornado.websocket.WebSocketHandler): 

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