有基本上是兩個問題,我想解決:初始化到服務器Python的插座服務器通過使用客戶端做驗證令牌
服務器端連接時
客戶端發送的查詢字符串在握手中驗證用戶令牌(不是在連接建立之後,然後驗證包含令牌的流消息)並相應地設置用戶會話。
我讀了文章(https://auth0.com/blog/2014/01/15/auth-with-socket-io/)談到有關此過程中實現的NodeJS,只是想知道同樣的功能可以通過使用python來實現。 (目前我正在做一些關於扭曲的研究,但還沒有發現任何類似的東西)
PS:猜測它有助於演示用例。用戶可以通過正常的http登錄到你的服務器,然後服務器將向他/她發出一個有效的accessToken。那麼這個用戶可能需要與服務器(或其他服務器)建立套接字連接,然後服務器需要在建立套接字連接之前找出用戶是誰並驗證。
感謝您在這裏解決關鍵問題,直到現在我還沒有意識到WebSocket和Socket之間的區別。因此,對於這種用例,除了在建立套接字之後進行用戶令牌認證之外,還有其他方式通過套接字通信來認證用戶嗎? – Yang 2014-09-25 22:08:55
@楊:理論上你可以嘗試基於來自同一個源地址進行身份驗證......但我認爲你鏈接的文章解釋了爲什麼這是一個壞主意。你也可以在UDP之上構建你自己的類TCP流,並將令牌部分作爲流連接協商的一部分(例如參見SIP,WebRTC,RTMFP等),但這對於一個漂亮的工作來說是相當大的工作量如果你的目標只是「我想要的是TCP所做的,除非我想避免沒有令牌的連接建立的成本」。你真的想在這裏解決什麼真正的問題? – abarnert 2014-09-25 22:54:51
我試圖編寫一個與主服務器分開的遊戲服務器(稱之爲認證服務器或其他),因爲用戶登錄MS並且MS會存儲會話(在某些緩存中像redis)並返回用戶acessToken。然後,當用戶實際連接到遊戲服務器時,我希望使用與此遊戲服務器的身份驗證機制相同的標記來驗證用戶並知道他/她是誰。 – Yang 2014-09-25 23:28:13