libreria decoded python jwt

decoded - jwt python flask



jwt: el objeto ''módulo'' no tiene atributo ''codificar'' (4)

Después de probar varias soluciones, creé un nuevo cuaderno de Python con el mismo código y parece que está funcionando. No estoy seguro de cuál era el problema antes. Considera este asunto estar cerrado. Muchas gracias a quienes lo intentaron.

Estoy recibiendo un error de módulo no encontrado cuando uso jwt. Así es como lo declaré:

def create_jwt_token(): payload = { "iat": int(time.time()) } shared_key = REST_API_TOKEN payload[''email''] = EMAIL payload[''password''] = PASSWORD jwt_string = jwt.encode(payload, shared_key) encoded_jwt = urllib.quote_plus(jwt_string) # url-encode the jwt string return encoded_jwt

El mensaje de error dice que la codificación no se encuentra en jwt. Hice una pestaña en jwt y descubrí que la codificación es un método dentro de jwt.JWT. Traté de cambiarlo a

jwt_string = jwt.JWT.encode(payload, shared_key)

Y da este error:

El método encuadernado () no enlazado se debe llamar con la instancia de JWT como primer argumento (en su lugar, tiene la instancia de dict).

¿Qué estoy haciendo mal? Aquí está la información de la versión de mi entorno python:

2.7.10 | Anaconda 2.3.0 (64 bits) | (predeterminado, 28 de mayo de 2015, 16:44:52) [MSC v.1500 64 bit (AMD64)]


El problema surge si tiene JWT y PyJWT instalados. Cuando se realiza la import jwt se está importando la biblioteca JWT en lugar de PyJWT. El que quieras para la codificación. Hice pip uninstall JWT y pip uninstall PyJWT y finalmente pip install PyJWT . Después de eso importó el módulo correcto y generó el token! :)


Puedes usar el paquete PyJWT , donde jwt.encode() funciona bien (no es necesario inicializar ni ningún otro tipo de cosas).


También estaba enfrentando el mismo problema porque había llamado a la secuencia de comandos desde la que había llamado jwt.encode () como ''jwt.py''. Así que ten cuidado al nombrar scripts. Trate de no usar ningún nombre de biblioteca.