Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.2K
Vistas
"Segmentos insuficientes" al enviar un mensaje GET con encabezado de autorización de token de portador (flask_restful + Flask_jwt_extended)

Recibí este error en la aplicación Flask:

 curl http://0.0.0.0:8080/ -H "Authorization: Bearer TGazPL9rf3aIftplCYDTGDc8cbTd" { "msg": "Not enough segments" }

Aquí una muestra:

 from flask import Flask from flask_restful import Resource, Api from flask_jwt_extended import JWTManager, jwt_required app = Flask(__name__) jwt = JWTManager(app) api = Api(app) class HelloWorld(Resource): @jwt_required def get(self): return {'hello': 'world'} api.add_resource(HelloWorld, '/')

Consola:

 * Serving Flask app "app.py" (lazy loading) * Environment: development * Debug mode: on * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 890-265-009 127.0.0.1 - - [26/Apr/2020 02:02:32] "GET / HTTP/1.1" 422 -

No puedo entender: ¿Qué pasa?

La excepción se lanzó en otra biblioteca (línea 183 en site-packages/jwt/api_jws.py):

 def _load(self, jwt): if isinstance(jwt, text_type): jwt = jwt.encode('utf-8') if not issubclass(type(jwt), binary_type): raise DecodeError("Invalid token type. Token must be a {0}".format( binary_type)) try: signing_input, crypto_segment = jwt.rsplit(b'.', 1) header_segment, payload_segment = signing_input.split(b'.', 1) except ValueError: raise DecodeError('Not enough segments')
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

El token que intenta pasar ( TGazPL9rf3aIftplCYDTGDc8cbTd ) no es un JWT válido. Un JWT válido tiene tres segmentos separados por puntos: <base64_encoded_header>.<base64_encoded_payload>.<signature> . Puede leer más sobre esto aquí: https://jwt.io/introduction/

over 4 years ago · Santiago Trujillo Denunciar

0

Publicaré aquí una respuesta relacionada con mi problema inicial anterior, el contexto es que estaba tratando de utilizar el usuario matraz_jwt_extend para usar en la autenticación de base de fuego, pero tengo este error "No hay suficientes segmentos" y me bloquearon.

Entonces, después de eso, cambio mi código a:

 from flask import Flask, request from flask_restful import Resource, Api from functools import wraps import google.auth.transport.requests import google.oauth2.id_token app = Flask(__name__) api = Api(app) HTTP_REQUEST = google.auth.transport.requests.Request() def jwt_required_gcp(fn): @wraps(fn) def wrapper(*args, **kwargs): id_token = request.headers['Authorization'].split(' ').pop() claims = google.oauth2.id_token.verify_firebase_token( id_token, HTTP_REQUEST) if not claims: return 'Unauthorized', 401 return fn(*args, **kwargs) return wrapper class HelloWorld(Resource): @jwt_required_gcp def get(self): return {'hello': 'world'} api.add_resource(HelloWorld, '/')
over 4 years ago · Santiago Trujillo Denunciar

0

Verifique su token JWT. ¿Es válido?

@fresh_jwt_required - función fresh_jwt_required() para permitir que solo tokens nuevos accedan a cierto punto final

@jwt_required: un decorador para proteger un extremo de Flask con tokens web JSON. Cualquier ruta decorada con esto requerirá que un JWT válido esté presente en la solicitud (a menos que opcional = Verdadero, en cuyo caso ningún JWT también es válido) antes de que se pueda llamar al punto final.

Para obtener más detalles, revise el matraz-jwt-extendido

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda