Flask JWT: utilizar para tokenizar la identidad del usuario, autenticar a los usuarios de la API

Aproveche Flask JWT para tokenizar la identidad de su miembro o usuario y utilícela para autenticarse. Es para intercambio de datos y UX

En este capítulo, hablaría sobre cómo aprovechar Flask JWT para tokenizar la identidad de su miembro o usuario y usarla para autenticarse. Es una forma súper común y útil de intercambio de datos y mejora de la experiencia del usuario. Es adaptable en cualquier sector, como marketing digital, comercio electrónico, SaaS, medios y negocios de datos.

Tabla de contenido: use Flask JWT para tokenizar las identidades de los usuarios

Por qué su API necesita autenticación de token

Como desarrollador o vendedor de inventario digital, asegurarse de que la autenticación de la identidad del usuario funcione sin problemas es una de las tareas diarias más importantes para proteger el negocio o las aplicaciones. Además, un vendedor de inventario de datos no quiere ver a nadie que pueda acceder a la API sin límite o bajo un sistema de seguimiento. Es simplemente por eso que necesitamos la autenticación de token API desde una perspectiva comercial y de seguridad.

Mientras tanto, para las experiencias de los usuarios, espera que los usuarios de la API puedan iniciar sesión en sus cuentas de la API simplemente agregando un token en el punto final de la API. O a través de un token API, pueden obtener acceso a datos analizados relevantes, conectarlos con las aplicaciones y disfrutar de experiencias de usuario personalizadas. Es una manera fluida, rápida y segura.

En general, tokenizar la identidad del usuario es crucial, útil y eficiente en el intercambio y la comunicación de datos, independientemente de los sectores en los que esté trabajando. En particular, estamos entrando en la era del jardín de pared más grande y sin cookies.

¿Qué es Flask JWT?

Antes de profundizar en el JWT, primero lo primero, necesitamos saber qué es el matraz. Esencialmente, Flask es un micro-marco basado en python que se utiliza para construir una API de descanso. La idea central del marco Flask es mantener las cosas simples pero extensibles. Permite a los desarrolladores agregar extensiones personalizadas para la integración de bases de datos, la autenticación, la gestión de sesiones y todos los demás sistemas de back-end según las preferencias.

Anteriormente hablé sobre Flask para crear una aplicación de bot de Shopify. Si estás interesado, echa un vistazo a esta pieza.

https://www.easy2digital.com/automation/data/python-tutorial-26-create-a-shopify-bot-web-application-using-flask-and-heroku/

Los tokens web JSON (JWT) son una forma segura y compacta de transmitir datos entre dos partes con la ayuda de objetos JSON. Entonces, esencialmente, si su aplicación se crea con Flask, JWT es una opción popular para que pueda crear una API token_required o acceso de usuario.

JSON utiliza dos tipos de estructuras diferentes para transmitir datos. Uno es serializado. Este tipo se usa cuando transfiere información a la red a través de cada solicitud y respuesta. Contiene una carga útil, un encabezado y una firma.

El otro está deserializado. Este tipo se usa cuando está leyendo/escribiendo información en el token. Contiene una carga útil y un encabezado.

Intenté compararlo con YAML anteriormente, consulte esta pieza si desea explorar más.

https://www.easy2digital.com/automation/data/python-knowledge-hub-json-vs-yaml-which-data-serialization-is-better/

Hoja de ruta de tokenización

Como se mencionó, JWT es para la autenticación de usuarios como el primer propósito original. Básicamente, hay tres pasos principales en la hoja de ruta de toda la generación.

  • Cree una columna de token en la base de datos de usuarios creada con sqlalchemy
  • Codifique un nuevo token de usuario de registro de la acción de registro de usuario
  • Cree una función token_required que se pueda aplicar a cualquier ruta de Flask que requiera la autenticación de usuario que desee

Columna de token, codificar y decodificar

Tomaría sqlalchemy por ejemplo. Lo primero es lo primero, debemos agregar una columna para almacenar el token único que tiene cada usuario. Para el nombre, podemos establecer "token", por ejemplo. Pero depende de tu preferencia. Para obtener más detalles sobre la base de datos de Flask, publicaré otro artículo.

El segundo paso es agregar el método de codificación JWT en la nueva ruta de registro de usuario. Es porque queremos asignar un token de API único para cualquier usuario nuevo cuando terminen de registrarse. Aquí selecciono solo el código de invitación que enviamos al usuario para que se registre como referencia de codificación del token. Puede usar otro punto de referencia o hacerlo más complejo usando múltiples puntos de referencia.

Por último, pero no menos importante, usamos el método de clase de usuario de la base de datos para agregar el nuevo token al nuevo usuario. Es único para ella o él.

Token requerido: envuelve y decodifica

Ahora está listo para construir la función requerida por el token. Necesitamos esto porque necesitamos asignarlo a cualquier ruta en la que necesitemos autenticación de usuario. El propósito es tan bueno como el login_required.

En esta función, el componente clave es decodificar el token y ver si el valor coincide con el creado cuando se registró recientemente.

Antes de entrar en la sección de decodificación, necesitamos importar un módulo que funcione y ajuste.

La función wraps es parte del módulo functools de Python. Envuelve y actualiza la función contenedora del decorador copiando atributos como _name__, __doc__, docstring, etc.

def token_required(f):

@wraps(f)

def decorate(*args, **kwargs):

Puede usar envolturas como decorador para corregir cadenas de documentos y nombres de funciones decoradas. ¿Por qué importa esto? Esto suena como un caso extraño al principio, pero si está escribiendo una API o cualquier código que usará alguien que no sea usted, entonces esto podría ser importante. La razón es que cuando usas la introspección de Python para descifrar el código de otra persona, una función decorada devolverá la información incorrecta.

dos componentes

Lo primero es lo primero, debemos agregar un parámetro de token en nuestro punto final de API y nombrarlo, como un token. Cuando las personas llaman a la API, agregan sus tokens únicos en este parámetro, como www.abe.com?token=12324343

token = request.args.get('token')

Luego, podemos crear una condición si el token falta, no es válido o es correcto. Por ejemplo, para el estado correcto, el token decodificado debe coincidir con el public_id creado cuando el usuario se registró. Entonces podríamos consultar la base de datos filtrando el usuario public_id.

Si la identificación no coincide con el token decodificado, el mensaje de respuesta no es válido. O si el extremo de la API carece del token, el mensaje de respuesta es que falta el token. Por lo tanto, garantiza que cualquier persona que use la API haya sido autenticada.

Muestras completas de secuencias de comandos de Python de Flask JWT

Si está interesado en el script de python completo del Capítulo 54: utilice Flask JWT para tokenizar las identidades de los usuarios y autenticar a los usuarios, suscríbase a nuestro boletín agregando el mensaje "Capítulo 54" . Le enviaremos el guión inmediatamente a su buzón.

Contáctenos

Espero que disfrute leyendo el Capítulo 54: Utilice Flask JWT para tokenizar las identidades de los usuarios y autenticar a los usuarios. Si lo hiciste, apóyanos haciendo una de las cosas que se enumeran a continuación, porque siempre ayuda a nuestro canal.

  • Apoya y dona a nuestro canal a través de PayPal ( paypal.me/Easy2digital )
  • Suscríbete a mi canal y activa la campanita de notificaciones Easy2Digital Youtube channel .
  • Sigue y dale me gusta a mi página Easy2Digital Facebook page
  • Comparte el artículo en tu red social con el hashtag #easy2digital
  • Compre productos con Easy2Digital 10% de descuento Código de descuento ( Easy2DigitalNewBuyers2021)
  • Te suscribes a nuestro boletín semanal para recibir los últimos artículos, videos y códigos de descuento de Easy2Digital