Es este tutorial aprendrás a iniciar sesión mediante una red social.

En este proyecto utilizaremos la herramienta Firebase que nos facilitará el desarrollo de nuestra aplicación. En su plataforma donde podremos anclar y pedir permisos a la aplicaicón de terceros para poder inciar sesión a partir de las redes sociales.

Tutorial

Primero abrimos el símbolo de sistema de Windows. Agregamos el comando create-react-app y a continuación creamos el nombre del proyecto.

Ej: npx create-react-app tutorialenfirebase

A continuación, instalaremos las librerías de Firebase:

  • entramos a la carpeta de nuestro nuevo propyecto :np tutorialenfirebase.
  • yarn add firebase.
  • yarn add react-firebaseui.
  • abrimos Visual Code con: code .
  • iniciamos el servidor: yarn start.

Segundo importamos la librería de Firebase en el componente App.js para poder acceder a la plataforma. Connvertimos la función App en clase y añadimos render sobre return.

Tercero entramos en a la página de Firebase. Iniciamos con una cuenta de gmail.

Dentro de la página pinchamos en la etiqueta AUTHENTICATION. Nos mostrará una barra con varias opciones y pinchamos en SIGN-IN METHOD.

En esta ventana eligimos la red social a logar a nuestros usuarios.

Después, cada red social necesitamos la id de la app y la clave secreta. Es importante crear una cuenta como desarrollador para crear una app dentro de ella y pasar la dos claves a Firebase.

Pegamos las claves App ID y la clave secreta en Firebase. Y en la página de la red social a asociar pegamos la url URI.

Ahora volvemos a React. Inicializamos la plataforma con las claves sacadas desde de Firebase.

Creamos un state para iniciar la sesión en false.

Traemos los proveedores a la página principal para permitir inciar sesión a nuestros usuarios.

Luego, arrancamos el ciclo de vida mediante componentDidMount que se ejecutará después de que el componente haya sido montado en el DOM.

Y para acabar preguntamos con una condición si el usuario ha iniciado sesión. Añadimos el estilo de los botones de Firebase y mostramos el nombre y la foto de perfil del usuario.

 import React, { Component } from "react";
import "./App.css";
import firebase from "firebase";
import StyledFirebaseAuth from "react-firebaseui/StyledFirebaseAuth";

firebase.initializeApp({
  apiKey: "AIzaSyB8S_vLLaF9AbjB5XW9SKuVbXO0rXe_FX8",
  authDomain: "mylogin-539a8.firebaseapp.com"
});

class App extends Component {
  state = { isSignedIn: false };
  uiConfig = {
    signInFlow: "popup",
    signInOptions: [
      firebase.auth.GoogleAuthProvider.PROVIDER_ID,
      firebase.auth.GithubAuthProvider.PROVIDER_ID,
      firebase.auth.EmailAuthProvider.PROVIDER_ID,
      (firebase.auth.OAuthProvider.PROVIDER_ID = "yahoo.com")
    ],
    callbacks: {
      signInSuccess: () => false
    }
  };
  componentDidMount = () => {
    firebase.auth().onAuthStateChanged(user => {
      this.setState({ isSignedIn: !!user });
      console.log("user", user);
    });
  };
  render() {
    return (
      <div className="App">
        {this.state.isSignedIn ? (
          <span>
            <div className="card">
              <h1>
                Bienvenido usuario {firebase.auth().currentUser.displayName}
              </h1>
              <img src={firebase.auth().currentUser.photoURL} />
              <br />
              <button onClick={() => firebase.auth().signOut()}>
                Cerrar sesión
              </button>
            </div>
          </span>
        ) : (
          <StyledFirebaseAuth
            uiConfig={this.uiConfig}
            firebaseAuth={firebase.auth()}
          />
        )}
      </div>
    );
  }
}

export default App;

 

Autor: Benjamín Johnson Akpaloo Osei

Curso: Microsoft MCSA Web Applications + Microsoft MCSD App Builder + Xamarin

Centro: Tajamar

Año académico: 2019-2020

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.