More

Guía Completa de Autenticación de Terceros en Flutter con Parse en Back4App

44min

Introducción

Integrar métodos de autenticación de terceros como Facebook, Google y Apple en tu aplicación Flutter puede mejorar significativamente la experiencia del usuario al proporcionar opciones de inicio de sesión flexibles y convenientes. Parse Server, impulsado por Back4App, ofrece soporte integrado para estos proveedores de autenticación. En este tutorial, aprenderás cómo implementar la autenticación de terceros en tu aplicación Flutter utilizando el SDK de Parse en Back4App.

Al final de este tutorial, tendrás una aplicación Flutter con funciones de registro e inicio de sesión completamente funcionales que incluyen:

  1. Autenticación estándar con correo electrónico/contraseña utilizando Parse.
  2. Métodos de autenticación de terceros:
    • Facebook
    • Google
    • Apple

Requisitos previos

Para seguir este tutorial, necesitarás lo siguiente:

  • Una cuenta de Back4App. Regístrate para obtener una cuenta gratuita en Back4App.
  • Un entorno de desarrollo Flutter instalado en tu máquina. Sigue esta guía si necesitas ayuda para configurar Flutter.
  • Conocimientos básicos de Flutter y Dart. Si eres nuevo, consulta la introducción de Flutter.
  • Cuentas de desarrollador para Facebook, Google y Apple (requeridas para configurar métodos de inicio de sesión de terceros).
  • Un IDE o editor de texto como Visual Studio Code o Android Studio.

Paso 1 – Configurando tu Backend de Back4App

1.1. Crear un Proyecto en Back4App

  1. Inicia sesión en tu panel de Back4App.
  2. Haz clic en "Crear nueva App".
  3. Ingresa un nombre para tu aplicación, por ejemplo, "AuthDemo", y haz clic en "Crear".
  4. Una vez que se crea el proyecto, navega a Configuración de la App > Seguridad y Claves.
  5. Anota tu ID de Aplicación y Clave de Cliente. Necesitarás estos valores para inicializar Parse en tu aplicación Flutter.

1.2. Habilitar Proveedores de Autenticación

  1. En tu panel de Back4App, navega a Configuración del Servidor > Autenticación.
  2. Habilita los métodos de autenticación que planeas usar:
    • Facebook
    • Google
    • Apple
  3. Para cada proveedor, necesitarás ingresar credenciales específicas (ID de App, ID de Cliente, Secretos, etc.), que se configurarán en los próximos pasos.

Paso 2 – Instalando y Configurando Parse SDK en Flutter

2.1. Crear un Nuevo Proyecto de Flutter

Abre tu terminal y crea un nuevo proyecto de Flutter:

Bash


2.2. Agregar Dependencias

Abre pubspec.yaml y agrega las siguientes dependencias para Parse y opciones de inicio de sesión de terceros:

YAML


Ejecuta flutter pub get para instalar las dependencias.

2.3. Inicializar Parse en main.dart

En el lib/main.dart archivo, importa el SDK de Parse e inicialízalo en la main función:

Dart

  • Reemplaza 'YOUR_APP_ID' y 'YOUR_CLIENT_KEY' con tus credenciales reales de Back4App del Paso 1.

Paso 3 – Implementando Autenticación Estándar

3.1. Crear el Servicio de Autenticación

Crea un nuevo directorio llamado services bajo lib y añade un archivo llamado auth_service.dart. Este servicio manejará el registro y el inicio de sesión de usuarios utilizando Parse.

Dart


3.2. Crea la Pantalla de Autenticación

Crea un nuevo directorio llamado screens bajo lib y añade un archivo llamado auth_screen.dart. Esta pantalla proporcionará la interfaz de usuario para la autenticación estándar.

Dart


Paso 4 – Integrando la Autenticación de Facebook

4.1. Configurar la Cuenta de Desarrollador de Facebook

  1. Crea una aplicación de Facebook:
    • Ve a Facebook para Desarrolladores y inicia sesión.
    • Haz clic en "Mis aplicaciones" y luego "Crear aplicación".
    • Seleccionar "Consumidor" como el tipo de aplicación y hacer clic en "Siguiente".
    • Complete el Nombre de la Aplicación y Correo Electrónico de Contacto, luego haga clic en "Crear Aplicación".
  2. Agrega el inicio de sesión de Facebook a tu aplicación:
    • En el panel de tu aplicación, navega a "Agregar un producto" y selecciona "Inicio de sesión de Facebook".
    • Elige "Android" y/o "iOS" dependiendo de tu plataforma objetivo.
    • Sigue los pasos de configuración proporcionados por Facebook. Necesitarás el Identificador de Paquete para iOS y Nombre del Paquete para Android.
  3. Configurar URI de redirección OAuth:
    • Establecer el OAuth Redirect URI a: https://parseapi.back4app.com/auth/facebook/callback
  4. Obtener ID de la aplicación y secreto de la aplicación:
    • En el panel de tu aplicación, ve a "Configuración" > "Básico".
    • Anote el ID de la aplicación y Secreto de la aplicación.
  5. Agrega el ID de la aplicación y el secreto a Back4App:
    • En el panel de Back4App, navega a Configuración del servidor > Autenticación.
    • Bajo Facebook, ingresa tu ID de la aplicación y Secreto de la aplicación.

4.2. Actualizar auth_service.dart con Facebook Login

Agrega el siguiente código para manejar la autenticación de Facebook:

Dart


4.3. Agregar botón de inicio de sesión de Facebook a auth_screen.dart

Agrega el siguiente botón a tu interfaz de usuario:

Dart


4.4. Configuraciones Específicas de la Plataforma

Android

  • Actualiza tu android/app/src/main/AndroidManifest.xml:
XML

  • Agrega tu ID de Aplicación de Facebook a android/app/src/main/res/values/strings.xml:
XML


iOS

  • Actualiza tu Info.plist archivo:
XML


Paso 5 – Integrando la Autenticación de Google

5.1. Configurar la Cuenta de Desarrollador de Google

  1. Crear un proyecto en Google Cloud Console:
  2. Configurar la pantalla de consentimiento de OAuth:
    • Navegar a APIs y Servicios > pantalla de consentimiento de OAuth.
    • Configurar la pantalla de consentimiento con los alcances necesarios.
  3. Crear ID de cliente OAuth:
    • Ir a Credenciales > Crear Credenciales > ID de cliente OAuth.
    • Elegir Aplicación web.
    • Agregar URIs de redirección autorizados: https://parseapi.back4app.com/auth/google/callback
    • Anotar el ID de cliente y Secreto de cliente.
  4. Agregar ID de cliente y secreto a Back4App:
    • En el panel de Back4App, bajo Configuración del servidor > Autenticación, ingresa tu ID de cliente y Secreto de cliente para Google.

5.2. Actualizar auth_service.dart con Google Login

Agrega el siguiente código para manejar la autenticación de Google:

Dart


5.3. Agregar botón de inicio de sesión de Google a auth_screen.dart

Agrega el siguiente botón a tu interfaz de usuario:

Dart


5.4. Configuraciones Específicas de la Plataforma

Android

  • Agrega lo siguiente a tu android/app/build.gradle archivo:
Text

  • Agrega tu ID de Cliente de Google a android/app/src/main/res/values/strings.xml:
XML

XML

XML

  • Actualiza tu android/app/src/main/AndroidManifest.xml:
XML


iOS

  • Agrega el ID de cliente revertido a tu Info.plist:
XML


Paso 6 – Integrando la Autenticación de Apple

6.1. Configurar la cuenta de desarrollador de Apple

  1. Registrar tu aplicación:
  2. Habilitar el inicio de sesión con Apple:
    • Bajo Identificadores, selecciona tu aplicación y habilita el inicio de sesión con Apple.
  3. Crear un ID de servicios:
    • Crea un ID de servicios para tu aplicación.
    • Establece el URI de redirección a: https://parseapi.back4app.com/auth/apple/callback
  4. Generar un secreto de cliente:
    • Crea una clave privada de inicio de sesión con Apple.
    • Usa esta clave para generar un secreto de cliente.
  5. Agregar credenciales a Back4App:
    • En el panel de Back4App, bajo Configuración del servidor > Autenticación, ingresa tu ID de servicios y secreto de cliente para Apple.

6.2. Actualizar auth_service.dart con inicio de sesión de Apple

Agrega el siguiente código para manejar la autenticación de Apple:

Dart


6.3. Agrega el botón de inicio de sesión de Apple a auth_screen.dart

Agrega el siguiente botón a tu interfaz de usuario:

Dart


6.4. Configuraciones Específicas de la Plataforma

Solo iOS

  • En Xcode, abre tu proyecto y ve a Firmar y Capacidades.
  • Haz clic en "+ Capacidad" y agrega "Iniciar sesión con Apple".
  • Asegúrate de que tu Identificador de Paquete coincida con el registrado en el Portal de Desarrolladores de Apple.

Paso 7 – Probando tu Aplicación

Ahora que has configurado todos los métodos de autenticación, puedes ejecutar tu aplicación y probar cada opción de inicio de sesión.

7.1. Ejecutar la Aplicación

Bash

  • Para iOS, debes ejecutar la aplicación en un dispositivo real para probar Iniciar sesión con Apple.
  • Para Android, puedes usar un emulador o un dispositivo físico.

7.2. Probar la Autenticación Estándar

  • Ingresa un nombre de usuario, correo electrónico y contraseña.
  • Toca "Registrarse" para crear un nuevo usuario.
  • Toca "Iniciar sesión" para iniciar sesión con las credenciales creadas.

7.3. Probar el Inicio de Sesión con Facebook

  • Toca "Iniciar sesión con Facebook".
  • Aparecerá una pantalla de inicio de sesión de Facebook.
  • Inicia sesión con tus credenciales de Facebook.

7.4. Prueba de inicio de sesión de Google

  • Toca "Iniciar sesión con Google".
  • Aparecerá una pantalla de inicio de sesión de Google.
  • Inicia sesión con tu cuenta de Google.

7.5. Prueba de inicio de sesión de Apple (solo iOS)

  • Toca "Iniciar sesión con Apple".
  • Aparecerá el aviso de inicio de sesión de Apple.
  • Autentica usando tu ID de Apple.

Conclusión

En este tutorial, implementaste con éxito la autenticación estándar de correo electrónico/contraseña e integraste métodos de autenticación de terceros (Facebook, Google y Apple) en tu aplicación Flutter utilizando el SDK de Parse en Back4App. Esta configuración mejora la experiencia del usuario al ofrecer múltiples opciones de inicio de sesión convenientes.

Próximos Pasos

  • Perfiles de Usuario: Amplía la aplicación para gestionar perfiles de usuario, permitiendo a los usuarios actualizar su información.
  • Funcionalidad de Cierre de Sesión: Implementa funciones de cierre de sesión para cada método de autenticación.
  • Seguridad de Datos: Asegura tus datos implementando control de acceso basado en roles con ACLs y Roles de Parse.
  • Manejo de Errores: Mejora el manejo de errores para proporcionar retroalimentación más detallada a los usuarios.
  • Mejoras en la UI: Personaliza la UI para que coincida con la marca de tu aplicación y mejore la experiencia del usuario.

Recursos Adicionales

¡Feliz Codificación!