domingo, 10 de marzo de 2019

Angular: 58. CRUD Firebase. AngularFire2: Autentificación con Twitter y Logout

Vamos a ver cómo implementar el logout y cómo autentificarnos con Twitter.

Primero vamos a implementar el logout. Lo primero que vamos a hacer es modificar la función logout del servicio del chat para poner manualmente el usuario a nulo, para que no queden datos del usuario:


Luego nos vamos al componente de la aplicación y le inyectamos el servicio del chat para poder llamar a su función logout:


Ahora modificamos el html del componente de la aplicación para añadir un botón de logout que llamará a la función logout del servicio y que sólo se mostrará si ya hay un usuario registrado.
También modificamos los botones de login para que aparezcan sólo cuando no hay usuarios registrados:


Ahora si arrancamos la aplicación, comprobamos que sólo aparecen los botones de login:


Y si nos registramos con Google, sólo aparece el botón de logout:


Con esto ya tendríamos el logout implementado.
Ahora vamos a ver cómo autentificarnos con Twitter.
Como con Google, tenemos que irnos a la web de Firebase, a la sección de autentificación, y activar la de Twitter:


Sin embargo, en este caso nos solicitan dos claves que tenemos que buscar de Twitter, así que pulsamos en el enlace señalado:


Desde la web a la que nos lleva el enlace, nos vamos a la parte de Twitter en web:


Y nos aparecerán los pasos que tenemos que dar. En nuestro caso sólo nos queda registrar nuestra aplicación en Twitter, así que pulsamos el enlace:


En la web a la que nos lleva, pulsamos en crear nueva aplicación:


Antes de seguir, volvemos a Firebase, donde al activar la autentificación de Twitter nos daban un enlace de callback, que tenemos que copiar porque nos lo van a pedir en uno de los campos de Twitter:


Ahora sí, vamos rellenando los campos de la nueva aplicación e Twitter con los datos que queramos:


No nos olvidamos de copiar la dirección de callback:


Seguimos rellenando campos y pulsamos en el botón de crear:


Una vez la aplicación está creada, nos vamos a la parte de "keys and tokens" y comprobamos que allí están las claves que necesitamos para Firebase:


Las copiamos en Firebase y guardamos. Ya tenemos activada la autentificación de Twitter mediante Firebase:


Ahora, por dar un poco más de seguridad, volvemos a la aplicación de Twitter y en la parte de permisos marcamos solo lectura y guardamos:


Con esto ya estaría todo configurado. Ahora sólo falta modificar nuestro código para llamar a la función correspondiente.

Primero modificamos la función de ingresar del componente de login para pasarle a la función de login del servicio el proveedor (para distinguir si hemos pulsado en el botón de Google o de Twitter):


Y, lógicamente, modificamos la función de login del servicio para recibir ése parámetro.
Además, llamamos a un servicio de login u a otro dependiendo del proveedor:


Y ya estaría completado. Ahora si arrancamos la aplicación y pulsamos en el botón de Twitter, nos aparecerá la ventana de login y podremos autentificarnos:


Y eso es todo.

No hay comentarios:

Publicar un comentario