2011-12-07 112 views
8

現在,我提高了我的龍捲風技能並對用戶身份驗證有個疑問。龍捲風websocket應用程序中的用戶身份驗證

而我的解決方案是在第一頁創建安全令牌,然後將其與其他數據一起發送,從JavaScript到龍捲風服務器,在那裏檢查和授權用戶。

我想Cookie,但我不知道我怎樣才能在WebSocketHandler.on_message

讀取cookies你在想什麼?我哪裏錯了?謝謝

回答

10

我建議你閱讀文檔中的overview section

應該有一些相關的內容有:

編輯

我才意識到你的問題是安博t websockets。我相信你可以使用的方法,你勾勒:

  • 在您的應用程序
  • 的非WebSocket的部分創建一個cookie檢查Cookie的網頁套接字句柄

您應該能夠訪問websocket處理程序中的請求標頭使用self.request.headers

+1

哦,謝謝Codeape!使用'self.request.headers' websocket處理程序保存我的一天) – yessi

+0

請參閱這裏的答案:http://stackoverflow.com/questions/4311180/how-to-send-cookies-when-connecting-to-socket-io-通過-的WebSockets – nathancahill

6

客戶端可以可能使用假用戶的請求頭: 「用戶=‘ImFkbWxxxx == | XXXXXXXXXX | 9d847f58a6897df8912f011f0a784xxxxxxxxxx’」

我認爲有以下方法更好。 如果用戶不存在,或者如果cookie ID是不正確的或僞造的,那麼函數get_secure_cookie將不返回用戶

class WebSocketHandler(tornado.websocket.WebSocketHandler): 

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