2016年5月,我们发布了最新版本的Google Identity Toolkit作为Firebase身份验证; 2019年4月,我们发布了Google Cloud的Identity Platform 。这些产品包括升级的客户端SDK,开源UI库,会话管理和用于忘记密码流的集成电子邮件发送服务。

20206月30日,此页面和API设置页面上记录的SDK将停止运行。 (Identity Platform和Firebase身份验证使用的https://identitytoolkit.googleapis.com/...https://securetoken.googleapis.com/...端点将继续运行。)

要从Identity Toolkit迁移现有项目,请参阅《 Identity Platform迁移指南》或《 Firebase身份验证迁移指南》

Migrar de Google Identity Toolkit a Firebase Authentication

La nueva versión de Google Identidad Toolkit ha sido lanzado como autenticación Firebase . En el futuro, el trabajo de funciones en Identity Toolkit se congelará y todo el desarrollo de funciones nuevas se realizará en Firebase Authentication. Alentamos a los desarrolladores de Identity Toolkit a cambiar a Firebase Authentication tan pronto como sea práctico para sus aplicaciones; sin embargo, Identity Toolkit sigue funcionando y no quedará obsoleto sin más anuncios.

Nuevas características

Firebase Authentication ya tiene algunas mejoras de características significativas en comparación con Google Identity Toolkit:

  • Acceso a todo Firebase

    Firebase es una plataforma móvil que lo ayuda a desarrollar rápidamente aplicaciones de alta calidad, aumentar su base de usuarios y ganar más dinero. Firebase se compone de características complementarias que se pueden mezclar y combinar para adaptarse a sus necesidades e incluye la infraestructura para: móviles de análisis , mensajería en la nube , de bases de datos en tiempo real , almacenamiento de archivos , alojamiento estática , configuración remota , móvil informe de bloqueo y Android de prueba .

  • IU actualizadas

    Hemos reconstruido completamente los flujos de la interfaz de usuario en función de la última investigación de UX de Google. Esto incluye la recuperación de contraseñas, la vinculación de cuentas, los flujos de desambiguación de cuentas nuevas/existentes que a menudo requieren mucho tiempo para codificar y depurar. Se integra Smart Lock para contraseñas en Android, que ha mejorado significativamente el inicio de sesión y la conversión de inscripción para participar aplicaciones . También es compatible con las modificaciones tema fácil de combinar su aplicación y, para una máxima capacidad de personalización, los Android y iOS versiones han sido abiertas de origen.

  • Configuración simplificada del servidor

    Facilitamos a los desarrolladores el uso de Firebase Authentication. Con Identity Toolkit, vimos que muchos desarrolladores optaron por no implementar el flujo de recuperación de correo electrónico, lo que hacía imposible que sus usuarios recuperaran sus cuentas si olvidaban su contraseña. Autenticación de base de fuego puede enviar correo electrónico de verificación, para restablecer la contraseña, y los mensajes de contraseña cambiada para el usuario y el texto puede ser fácilmente personalizado para sus usuarios. Además, ya no es necesario para albergar los widgets de interfaz de usuario para la celebración de redirecciones y completar las operaciones de cambio de contraseña.

  • Nueva consola de administración

    Firebase tiene una nueva consola de desarrollador y la sección Autenticación le permite ver, modificar y eliminar sus usuarios. Esto puede ser de gran ayuda para depurar los flujos de inicio de sesión y registro. La consola también le permite configurar métodos de autenticación y personalizar plantillas de correo electrónico.

  • Nuevos SDK

    Todas las API del servidor de Identity Toolkit ahora están disponibles de forma nativa con cada una de nuestras bibliotecas de clientes (Android, iOS, web). Los desarrolladores podrán iniciar sesión y registrar usuarios antiguos y nuevos, acceder a las propiedades de los usuarios, vincular, actualizar y eliminar cuentas, restablecer contraseñas y más sin estar atados a una interfaz de usuario fija. Si lo prefiere, puede crear manualmente su propio flujo de inicio de sesión completo y experiencia sobre esta API.

  • Gestión de sesiones para aplicaciones móviles

    Con Identity Toolkit, las aplicaciones crearon su propio estado de sesión en función del evento de autenticación inicial de Identity Toolkit. Firebase Auth usa un servicio de backend que toma un token de actualización, obtenido del evento de autenticación, y lo intercambia por tokens de acceso de una hora para Android, iOS y JavaScript. Cuando un usuario cambia su contraseña, los tokens de actualización ya no podrán generar nuevos tokens de acceso, lo que deshabilitará el acceso hasta que el usuario se vuelva a autenticar en ese dispositivo.

  • Autenticación anónima y GitHub

    Firebase Authentication admite dos nuevos tipos de autenticación: GitHub y anónimo. El inicio de sesión anónimo se puede utilizar para crear una ID de usuario única sin que el usuario tenga que pasar por ningún proceso de inicio de sesión o registro. Con un usuario anónimo, ahora puede realizar llamadas API autenticadas, como lo haría con un usuario normal. Cuando el usuario decide registrarse para obtener una cuenta, toda la actividad se conserva con la misma ID de usuario. Esto es excelente para situaciones como un carrito de compras del lado del servidor o cualquier aplicación en la que desee involucrar al usuario antes de enviarlo a través de un flujo de registro.

Diferencias de características

Algunas funciones de Identity Toolkit no están disponibles actualmente en Firebase Authentication, mientras que otras funciones se han rediseñado y funcionan de manera diferente. Puede optar por no migrar inmediatamente si estas características son importantes para su aplicación. En muchos casos, es posible que estas funciones no sean importantes para su aplicación o que haya alternativas fáciles que le permitan continuar con la migración.

Diferencias del lado del servidor

El servicio central de Identity Toolkit con sus API REST subyacentes, la lógica de validación de cuentas y la base de datos de usuarios principal solo han sufrido actualizaciones menores. Pero algunas funciones y la forma en que integra Firebase Authentication en su servicio han cambiado.

  • Proveedores de identidad

    Paypal y AOL no son compatibles. Los usuarios con cuentas de estos IDP aún pueden iniciar sesión en su aplicación con el flujo de recuperación de contraseña y configurar una contraseña para su cuenta.

  • Bibliotecas de servidor

    Actualmente, hay SDK de administrador base de fuego disponibles para Java, Node.js, Python, Ir y C #.

  • Correos electrónicos de administración de cuentas

    El restablecimiento de contraseña, la verificación de correo electrónico y los mensajes de cambio de correo electrónico se pueden realizar mediante Firebase o desde el propio servidor de correo del desarrollador. Actualmente, las plantillas de correo electrónico de Firebase solo ofrecen una personalización limitada.

  • Confirmación de cambio de dirección de correo electrónico

    En Identity Toolkit, cuando un usuario decide cambiar su dirección de correo electrónico, envía un correo electrónico a la nueva dirección que tiene un enlace para continuar con el flujo de cambio de dirección de correo electrónico.

    Firebase confirma el cambio de dirección de correo electrónico enviando un correo electrónico de revocación a la dirección de correo electrónico anterior con un enlace para revertir el cambio.

  • despliegue de desplazados internos

    Identity Toolkit tenía la capacidad de agregar proveedores de identidad a su sistema de inicio de sesión gradualmente, para que pudiera experimentar con el impacto en sus solicitudes de soporte. Esta función se eliminó en Firebase Authentication.

Diferencias del lado del cliente

En Firebase, las funciones proporcionadas por Google Identity Toolkit se dividen en dos componentes:

  • SDK de autenticación de Firebase

    En Firebase Authentication, la funcionalidad proporcionada por la API REST de Identity Toolkit se empaquetó en SDK de cliente disponibles para Android, iOS y JavaScript. Puede usar el SDK para iniciar sesión y registrar usuarios; acceder a la información del perfil del usuario; vincular, actualizar y eliminar cuentas; y restablezca las contraseñas utilizando el SDK del cliente en lugar de comunicarse con el servicio de back-end a través de llamadas REST.

  • Autenticación de FirebaseUI

    Todos los flujos de la interfaz de usuario que administran el inicio de sesión, el registro, la recuperación de contraseñas y la vinculación de cuentas se han reconstruido utilizando los SDK de autenticación de Frebase. Están disponibles como SDK de código abierto para iOS y Android que le permiten personalizar completamente los flujos de maneras que no son posibles con Identity Toolkit.

Las diferencias adicionales incluyen:

  • Sesiones y migración

    Debido a que las sesiones se administran de manera diferente en Identity Toolkit y Firebase Authentication, las sesiones existentes de sus usuarios finalizarán al actualizar el SDK y sus usuarios tendrán que iniciar sesión nuevamente.

Antes de que empieces

Para poder migrar de Identity Toolkit a Firebase Authentication, debe

  1. Abra la consola de Firebase , haga clic en Importar Google Proyecto y seleccione su proyecto Identidad Toolkit.

  2. Haga clic en > Permisos para abrir la página IAM y administración.

  3. Cuentas abiertas servicio de la página. Aquí puede ver la cuenta de servicio que configuró previamente para Identity Toolkit.

  4. Junto a la cuenta de servicio, haga clic > Crear clave. A continuación, en el cuadro de diálogo Crear clave privada, establecer el tipo de clave para JSON y haga clic en Crear. Se descarga automáticamente un archivo JSON que contiene las credenciales de su cuenta de servicio. Lo necesitará para inicializar el SDK en el siguiente paso.

  5. Volver a la consola de Firebase . En la sección de autenticación, abra la página Plantillas de Correo Electrónico. En esta página, personalice las plantillas de correo electrónico de su aplicación.

    En Identity Toolkit, cuando los usuarios restablecían contraseñas, cambiaban direcciones de correo electrónico y verificaban sus direcciones de correo electrónico por correo electrónico, necesitaba obtener un código OOB del servidor de Identity Toolkit y luego enviar el código a los usuarios por correo electrónico. Firebase envía correos electrónicos en función de las plantillas que configure sin que se requieran acciones adicionales.

  6. Opcional: Si necesita acceder a los servicios de base de fuego en su servidor, instale el SDK Firebase.

    1. Puede instalar el módulo Firebase Node.js con npm :

      $ npm init
      $ npm install --save firebase-admin
      
    2. En su código, puede acceder a Firebase usando:

      var admin = require('firebase-admin');
      var app = admin.initializeApp({
        credential: admin.credential.cert('path/to/serviceAccountCredentials.json')
      });
      

A continuación, complete los pasos de migración de la plataforma de su aplicación: Android , iOS , web .

Servidores y JavaScript

Cambios notables

Hay una serie de diferencias adicionales en la implementación web de Firebase de Identity Toolkit.

  • Gestión de sesiones web

    Anteriormente, cuando un usuario autenticado mediante el widget de Identidad Toolkit , una cookie se fijó para el usuario que se utiliza para arrancar la sesión . Esta cookie tenía una duración de dos semanas y se usaba para permitir que el usuario usara el widget de administración de cuentas para cambiar la contraseña y la dirección de correo electrónico. Algunos sitios utilizaron esta cookie para autenticar todas las demás solicitudes de página en el sitio. Otros sitios utilizaron la cookie para crear sus propias cookies a través del sistema de administración de cookies de su marco.

    SDK cliente firebase ahora manejan fichas Firebase identificación y trabajo con backend de autenticación Firebase para mantener el fresco sesión. El backend caduca las sesiones cuando se han producido cambios importantes en la cuenta (como cambios en la contraseña del usuario). Los tokens de ID de Firebase no se configuran automáticamente como cookies en el cliente web y solo tienen una hora de vida. A menos que desee sesiones de solo una hora, los tokens de ID de Firebase no son apropiados para usarse como la cookie para validar todas las solicitudes de su página. En su lugar, tendrá que definir un detector para cuando el usuario inicia sesión, obtener el token Firebase ID , validar el token , y crear su propia cookie a través del sistema de gestión de cookies de su marco.

    Deberá configurar la duración de la sesión de su cookie en función de las necesidades de seguridad de su aplicación.

  • Flujo de inicio de sesión web

    Anteriormente, los usuarios se redirigen a accountchooser.com cuando el inicio de sesión se inició a aprender qué identificador que el usuario desea utilizar. Flujo de base de fuego de autenticación de interfaz de usuario ahora comienza con una lista de métodos de inicio de sesión, incluyendo una opción de correo electrónico que va a accountchooser.com para la web y utiliza la API HintRequest en Android. Además, las direcciones de correo electrónico ya no son necesarias en la interfaz de usuario de Firebase. Esto facilitará la compatibilidad con usuarios anónimos, usuarios de autenticación personalizada o usuarios de proveedores donde no se requieren direcciones de correo electrónico.

  • Widget de gestión de cuentas

    Este widget proporciona una interfaz de usuario para que los usuarios cambien las direcciones de correo electrónico, cambien la contraseña o desvinculen sus cuentas de los proveedores de identidad. Actualmente se encuentra en desarrollo.

  • Botón/widget de inicio de sesión

    Ya no se proporcionan widgets como el botón de inicio de sesión y la tarjeta de usuario. Se pueden crear muy fácilmente con la API de autenticación de Firebase.

  • Sin URL de salida

    Tendrá que llamar firebase.auth.signOut() y manejar la devolución de llamada.

  • Sin oobActionUrl

    El envío de correo electrónico ahora lo maneja Firebase y se configura en la consola de Firebase.

  • personalización CSS

    FirebaseUI utiliza material Diseño Lite estilo, lo que añade dinámicamente animaciones Material Design.

Paso 1: cambiar el código del servidor

  1. Si su servidor se basa en el token de Identity Toolkit (válido durante dos semanas) para administrar las sesiones de los usuarios web, debe convertir el servidor para usar su propia cookie de sesión.

    1. Implementar un punto final para validar la base del fuego ID de símbolo y el establecimiento de la cookie de sesión para el usuario. La aplicación cliente envía el token de ID de Firebase a este extremo.
    2. Si la solicitud entrante contiene su propia cookie de sesión, puede considerar que el usuario está autenticado. De lo contrario, trate la solicitud como no autenticada.
    3. Si no desea que ninguno de sus usuarios pierda sus sesiones de inicio de sesión existentes, debe esperar dos semanas hasta que caduquen todos los tokens de Identity Toolkit, o también debe realizar la validación de token dual para su aplicación web como se describe a continuación en el paso 3.
  2. Luego, debido a que los tokens de Firebase son diferentes a los tokens de Identity Toolkit, debe actualizar su lógica de validación de tokens. Instalar el SDK del servidor Firebase a su servidor; o, si se utiliza un idioma no compatible con el servidor SDK Firebase, descargar una biblioteca de token de validación de JWT para su entorno y debidamente validar el token .

  3. Cuando realice las actualizaciones anteriores por primera vez, es posible que aún tenga rutas de código que dependan de los tokens de Identity Toolkit. Si tiene aplicaciones iOS o Android, los usuarios deberán actualizar a la nueva versión de la aplicación para que funcionen las nuevas rutas de código. Si no quiere obligar a sus usuarios a actualizar su aplicación, puede agregar una lógica de validación de servidor adicional que examine el token y determine si necesita usar Firebase SDK o Identity Toolkit SDK para validar el token. Si solo tiene una aplicación web, todas las nuevas solicitudes de autenticación se trasladarán a Firebase y, por lo tanto, solo necesita usar los métodos de verificación de tokens de Firebase.

Ver el Firebase Web API de referencia .

Paso 2: Actualiza tu HTML

  1. Agregue el código de inicialización de Firebase a su aplicación:

    1. Abra su proyecto en la consola Firebase .
    2. En la página Descripción general, haga clic en Agregar aplicación, a continuación, haga clic en Agregar Firebase a su aplicación web. Se muestra un fragmento de código que inicializa Firebase.
    3. Copie y pegue el fragmento de inicialización en su página web.
  2. Añadir FirebaseUI de autenticación para su aplicación:

    <script src="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.js"></script>
    <link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.css" />
    <!-- *******************************************************************************************
       * TODO(DEVELOPER): Paste the initialization snippet from:
       * Firebase Console > Overview > Add Firebase to your web app. *
       ***************************************************************************************** -->
    <script type="text/javascript">
      // FirebaseUI config.
      var uiConfig = {
        'signInSuccessUrl': '<url-to-redirect-to-on-success>',
        'signInOptions': [
          // Leave the lines as is for the providers you want to offer your users.
          firebase.auth.GoogleAuthProvider.PROVIDER_ID,
          firebase.auth.FacebookAuthProvider.PROVIDER_ID,
          firebase.auth.TwitterAuthProvider.PROVIDER_ID,
          firebase.auth.GithubAuthProvider.PROVIDER_ID,
          firebase.auth.EmailAuthProvider.PROVIDER_ID
        ],
        // Terms of service url.
        'tosUrl': '<your-tos-url>',
      };
    
      // Initialize the FirebaseUI Widget using Firebase.
      var ui = new firebaseui.auth.AuthUI(firebase.auth());
      // The start method will wait until the DOM is loaded.
      ui.start('#firebaseui-auth-container', uiConfig);
    </script>
    
  3. Elimina el SDK de Identity Toolkit de tu aplicación.

  4. Si confió en el token de ID de Identity Toolkit para la administración de la sesión, debe realizar los siguientes cambios en el lado del cliente:

    1. Después de firmar con éxito en Firebase, obtener una ID de símbolo Firebase llamando firebase.auth().currentUser.getToken() .

    2. Envíe el token de ID de Firebase al servidor backend, valídelo y emita su propia cookie de sesión.

      No confíe únicamente en la cookie de sesión cuando realice operaciones confidenciales o envíe solicitudes de edición autenticadas a su servidor. Deberá proporcionar protección adicional contra la falsificación de solicitudes entre sitios (CSRF).

      Si el marco no proporciona protección CSRF, una manera de prevenir un ataque sería la de obtener un Firebase ID de símbolo para la firma-en usuario con getToken() e incluir el token con cada solicitud (la cookie de sesión también se enviará por defecto ). Luego validaría ese token usando el SDK del servidor Firebase además de la verificación de cookies de la sesión, que completó su marco de back-end. Esto dificultará el éxito de los ataques CSRF, ya que el token de ID de Firebase solo se almacena mediante el almacenamiento web y nunca en una cookie.

    3. Los tokens de Identity Toolkit son válidos durante dos semanas. Es posible que desee continuar emitiendo tokens que duren dos semanas, o que sea más largo o más corto según los requisitos de seguridad de su aplicación. Cuando un usuario cierra la sesión, borre la cookie de sesión.

Paso 3: actualice las URL de redireccionamiento de IDP

  1. En la consola Firebase, abra la sección Autenticación y haga clic en el inicio de sesión en la ficha Método.

  2. Para cada proveedor de inicio de sesión federado que admita, haga lo siguiente:

    1. Haga clic en el nombre del proveedor de inicio de sesión.
    2. Copie el URI de redireccionamiento de OAuth.
    3. En la consola para desarrolladores del proveedor de inicio de sesión, actualice el URI de redirección de OAuth.

Androide

Paso 1: Agrega Firebase a tu aplicación

  1. Abra la consola de Firebase , y seleccione su proyecto de identidad Toolkit, que ya importó.

  2. En la página Descripción general, haga clic en Agregar App y, a continuación, haga clic en Agregar Firebase a su aplicación para Android. En el diálogo Añadir Firebase, proporcionar el nombre del paquete y la firma de certificados de huellas dactilares de la aplicación y haga clic en Agregar aplicación. El google-services.json fichero de configuración a continuación, se descarga en su ordenador.

  3. Copie el archivo de configuración en el directorio raíz del módulo de la aplicación de Android. Este archivo de configuración contiene información del proyecto y del cliente de Google OAuth.

  4. En el Proyecto de nivel build.gradle archivo ( <var>your-project</var>/build.gradle ), especifique el nombre del paquete de la aplicación en la defaultConfig sección:

    defaultConfig {
       …..
      applicationId "com.your-app"
    }
    
  5. También en el nivel de proyecto build.gradle archivo, agregar una dependencia para incluir los servicios de Google-plugins:

    buildscript {
     dependencies {
       // Add this line
       classpath 'com.google.gms:google-services:3.0.0'
     }
    }
    
  6. En la aplicación a nivel de su aplicación build.gradle archivo ( <var>my-project</var>/<var>app-module</var>/build.gradle ), agregue la siguiente línea a la parte inferior para permitir que el Google- complemento de servicios:

    // Add to the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    

    Los servicios de Google-plugin utiliza el google-services.json archivo para configurar la aplicación para utilizar Firebase.

  7. También en la App nivel build.gradle archivo, agregue la dependencia de autenticación Firebase:

    compile 'com.google.firebase:firebase-auth:21.0.1'
    compile 'com.google.android.gms:play-services-auth:20.0.1'
    

Paso 2: Elimina el SDK de Identity Toolkit

  1. Eliminar la configuración de la identidad del kit de herramientas de AndroidManifest.xml archivo. Esta información se incluye en el google-service.json archivo y cargado por los servicios de Google-plugin.
  2. Elimina el SDK de Identity Toolkit de tu aplicación.

Paso 3: Agregue FirebaseUI a su aplicación

  1. Añadir FirebaseUI de autenticación para su aplicación.

  2. En su aplicación, reemplace las llamadas al SDK de Identity Toolkit con llamadas a FirebaseUI.

iOS

Paso 1: Agrega Firebase a tu aplicación

  1. Agregue el SDK de Firebase a su aplicación ejecutando los siguientes comandos:

    $ cd your-project directory
    $ pod init
    $ pod 'Firebase'
    
  2. Abra la consola de Firebase , y seleccione su proyecto de identidad Toolkit, que ya importó.

  3. En la página Descripción general, haga clic en Agregar App y, a continuación, haga clic en Agregar Firebase a su aplicación para iOS. En el diálogo Añadir Firebase, proporcionar paquete ID de la aplicación y la App Store ID y, a continuación, haga clic en Agregar aplicación. El GoogleService-Info.plist fichero de configuración a continuación, se descarga en su ordenador. Si tiene varios ID de paquete en su proyecto, cada ID de paquete debe ser conectado en la consola Firebase por lo que puede tener su propio GoogleService-Info.plist archivo.

  4. Copie el archivo de configuración en la raíz de su proyecto Xcode y agréguelo a todos los objetivos.

Paso 2: Elimina el SDK de Identity Toolkit

  1. Retire GoogleIdentityToolkit de PODFILE de su aplicación.
  2. Ejecutar la pod install comandos.

Paso 3: Agregue FirebaseUI a su aplicación

  1. Añadir FirebaseUI de autenticación para su aplicación.

  2. En su aplicación, reemplace las llamadas al SDK de Identity Toolkit con llamadas a FirebaseUI.