es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo hacer Autenticación/Autorización

Quiero crear una aplicación que consistirá en una aplicación React, una aplicación móvil Flutter y una API REST backend que será llamada por las aplicaciones frontend. Quiero agregar autenticación a las dos aplicaciones cliente y autorización a la API.

He estado leyendo sobre este tema durante los últimos días y no puedo encontrar una forma que sea segura y amigable para el usuario. He revisado algunas tecnologías/proveedores (Ory, Keycloak, Auth0 e IdentityServer) y mi problema con todos ellos es que te redirigen a otra URL, lo cual sería más aceptable para React. Sin embargo, para la aplicación móvil esto abrirá un navegador dentro de la aplicación o te redirigirá directamente a tu navegador y eso simplemente es una mala experiencia de usuario. Solo Auth0 menciona la posibilidad de un inicio de sesión incrustado, pero no pude encontrar un ejemplo y su SDK de Flutter está mal documentado (ni siquiera está listado en su sitio web).

Me gustaría que el flujo sea el siguiente:
1. El usuario abre la aplicación
2. El usuario ve una página de inicio de sesión
3. El usuario ingresa sus credenciales e inicia sesión

Mi pregunta es: ¿Cómo puedo hacer esto? Mi conocimiento sobre autenticación/autorización es muy limitado, así que cualquier indicación será bienvenida. Gracias de antemano.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en reactjs, flutter, seguridad, autenticación y autorización, entiendo la necesidad de asegurar que la aplicación sea segura y fácil de usar. Para lograr esto, recomendaría implementar una solución de Inicio de Sesión Único (SSO) y autenticación JSON Web Tokens (JWT) para mayor seguridad.

    La solución de SSO permitirá a los usuarios acceder tanto a las aplicaciones de React como a las de Flutter a través de un único proceso de autenticación. Esto se puede lograr utilizando uno de los proveedores de identidad que mencionaste anteriormente, como Auth0 o IdentityServer. Ambos ofrecen características de personalización que te permitirán proporcionar una experiencia de inicio de sesión incrustada que cumpla con tus requisitos de diseño de usuario.

    Una vez que el usuario ha sido autenticado, la API REST del backend puede utilizar los JWT para autorizar el acceso a los recursos. El JWT proporciona una forma segura de transmitir la identidad del usuario y los datos de autorización entre el cliente y el servidor.

    Para implementar esto, necesitarás:

    1. Configurar un proveedor de identidad (IDP) como Auth0 o IdentityServer
    2. Configurar el IDP para manejar SSO tanto para las aplicaciones de React como para las de Flutter
    3. Implementar una experiencia de inicio de sesión incrustada utilizando las características de personalización del IDP
    4. En el backend, implementar la autenticación y autorización basadas en JWT para la API REST

    Siguiendo estos pasos, te asegurarás de que tu aplicación sea segura y de que el proceso de autenticación y autorización sea fluido para tus usuarios.

Comments are closed.