Login red social React
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