2012-09-25 14 views
6

Estoy configurando una aplicación de Flask con la extensión de inicio de sesión de matraz. La documentación de inicio de sesión del matraz recomienda configurar un generador de token alternativo que no use simplemente el ID de usuario y el secreto de la aplicación para crear el token de sesión (que es el método predeterminado). Pero no proporciona recomendaciones claras sobre cómo hacer esto.Cargador de tokens de inicio de sesión de Flask

Por lo tanto, para User.get_auth_token(), estoy usando la función make_secure_token con el correo electrónico y la contraseña del usuario como parámetros (de modo que obtengo un hash de estos parámetros + secreto de la aplicación).

A continuación, necesito poder obtener al usuario del token con la devolución de llamada token_loader. El método predeterminado para generar tokens en el inicio de sesión del matraz es incluir tanto la identificación del usuario sin procesar como un resumen del ID del usuario + secreto de la aplicación. Eso hace que encontrar al usuario del token sea bastante simple: solo tome la ID y busque al usuario.

¿Pero debería exponer el ID de usuario en el token de sesión? Si no lo hago, ¿debo guardar el token de la sesión en la base de datos o en otro lugar con la identificación del usuario para hacer una búsqueda posible?

En resumen: ¿alguien sabe cuál es la mejor práctica para crear un token seguro & correspondiente a la devolución de llamada token_loader?

Respuesta

3

En la lista de correo de Flask, Matt Wright me indicó his implementation en la extensión de frasco-seguridad. Utiliza itsdangerous para crear un token firmado que codifica una lista serializada (a través de URLSafeTimedSerializer()) que consta de la identificación del usuario y el hash de la contraseña. El token puede decodificarse para tomar la identificación del usuario.

Cuestiones relacionadas