2011-12-07 32 views
8

Ahora, mejoro mis habilidades de tornado y tengo una pregunta acerca de la autenticación de usuario.Autenticación de usuario en aplicación de websocket de tornado

Y mi solución es crear un token seguro en la primera página y luego enviarlo con otros datos, desde javascript a servidor de tornados, donde verifico y autorizo ​​al usuario.

pienso en galletas, pero yo no sé cómo puedo leer las cookies en WebSocketHandler.on_message

lo que parece? y donde estoy equivocado? Gracias

Respuesta

10

Le sugiero que lea el overview section en la documentación.

Debe haber algún contenido relevante allí:

EDITAR

simplemente me di cuenta de su pregunta es Abou t websockets. Creo que se puede utilizar el enfoque a esbozar:

  • Crear una galleta en la parte no WebSocket de su aplicación
  • Compruebe la cookie en el controlador WebSocket

usted debería ser capaz de acceder los encabezados de solicitud dentro del manejador de websocket usando self.request.headers.

+1

oh, gracias Codeape! use 'self.request.headers' websocket handler save my day) – yessi

+0

Vea la respuesta aquí: http://stackoverflow.com/questions/4311180/how-to-send-cookies-when-connecting-to-socket-io- via-websockets – nathancahill

6

Un cliente probablemente podría hacer las cabeceras de petición con un usuario falso: 'user = "ImFkbWxxxx == | xxxxxxxxxx | 9d847f58a6897df8912f011f0a784xxxxxxxxxx"'

creo que el siguiente enfoque es mejor. Si el usuario no existe o si el ID de cookie no es correcta o falsificado, entonces el get_secure_cookie función no devolverá un usuario

class WebSocketHandler(tornado.websocket.WebSocketHandler): 

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