diff --git a/.gitignore b/.gitignore
index 67ce5d5bb..f01d609ea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,7 @@ node_modules/
# misc
.DS_Store
+.env
.env.local
.env.development.local
.env.test.local
diff --git a/src/components/onboarding/Signin.jsx b/src/components/onboarding/Signin.jsx
index a423deb7d..d3aea62fe 100644
--- a/src/components/onboarding/Signin.jsx
+++ b/src/components/onboarding/Signin.jsx
@@ -1,8 +1,7 @@
import React, { Component } from 'react'
import { Link } from 'react-router-dom'
import Swal from 'sweetalert2'
-import { signInWithGoogle } from '../../firebase/firebase.utils.js'
-import { doFacebookSignIn } from '../../firebase/firebase.utils.js'
+import { signInThroughFirebase } from '../../firebase/firebase.utils.js'
import './onboarding-css/Signin.css'
import axios from 'axios'
@@ -87,10 +86,10 @@ export default class Signin extends Component {
-
diff --git a/src/components/onboarding/Slogin.jsx b/src/components/onboarding/Slogin.jsx
index 5a440b263..85837f030 100644
--- a/src/components/onboarding/Slogin.jsx
+++ b/src/components/onboarding/Slogin.jsx
@@ -2,8 +2,7 @@ import React, { Component } from 'react'
import axios from 'axios'
import Swal from 'sweetalert2'
// import { axiosWithAuth } from '../../routes/axiosWithAuth'
-import { signUpWithGoogle } from '../../firebase/firebase.utils.js'
-import { doFacebookSignUp } from '../../firebase/firebase.utils.js'
+import { signUpThroughFirebase } from '../../firebase/firebase.utils.js'
//import 'bootstrap/dist/css/bootstrap.css'
import './onboarding-css/Slogin.css'
@@ -112,10 +111,10 @@ export default class Slogin extends Component {
-
+ signUpThroughFirebase('facebook', this.props.history)} className='social-signin facebook'>
LOG IN WITH FACEBOOK
-
+ signUpThroughFirebase('google', this.props.history)} className='social-signin google'>
LOG IN WITH GOOGLE
diff --git a/src/firebase/firebase.utils.js b/src/firebase/firebase.utils.js
index 219f517a8..8c8385645 100644
--- a/src/firebase/firebase.utils.js
+++ b/src/firebase/firebase.utils.js
@@ -1,106 +1,98 @@
-import firebase from "firebase/app"
-import 'firebase/auth'
-import axios from 'axios'
+import firebase from 'firebase/app';
+import 'firebase/auth';
+import axios from 'axios';
const config = {
- apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
- authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
- databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,
- projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
- storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
- messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
- appId: process.env.REACT_APP_FIREBASE_APP_ID,
- measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID
-}
+ apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
+ authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
+ databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,
+ projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
+ storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
+ messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
+ appId: process.env.REACT_APP_FIREBASE_APP_ID,
+ measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID
+};
const backend = process.env.REACT_APP_BACKEND_URL
-// const backend = 'http://localhost:5000'
-firebase.initializeApp(config)
+//Initialize firebase authorization with specific config
+firebase.initializeApp(config);
-export const auth = firebase.auth()
+//Create auth shorthand
+const auth = firebase.auth();
-//Google authentication
-export const provider = new firebase.auth.GoogleAuthProvider()
-provider.setCustomParameters({ prompt: 'select_account' })
-//REGISTER with Google account
-export const signUpWithGoogle = () => {
- //Use Firebase function to create a popup of specific provider's login
- auth.signInWithPopup(provider)
- .then(result => {
- //If it works, get the idToken from that login for verification use
- auth.currentUser.getIdToken(true)
- .then(idToken => {
- //If it works, send over token to the backend via header
- axios.get(`${backend}/auth/firebase/register`, {headers: {"token": idToken}})
- .then(res => {
- // console.log(res)
- // redirect here?
- })
- .catch(err => console.log(err))
- })
- .catch(err => console.log(err))
- })
- .catch(err => console.log(err))
-}
-//LOGIN with Google account
-export const signInWithGoogle = () => {
- auth.signInWithPopup(provider)
- .then(result => {
- auth.currentUser.getIdToken(true)
- .then(idToken => {
- const user = result.user
- axios.get(`${backend}/auth/firebase/login`, {headers: {"token": idToken}})
- .then(res => {
- // console.log(res)
- // redirect here?
- })
- .catch(err => console.log(err))
- })
- .catch(err => console.log(err))
- })
- .catch(err => console.log(err))
-}
+//Providers supported
+const googleProvider = new firebase.auth.GoogleAuthProvider().setCustomParameters({ prompt: 'select_account' });
+const facebookProvider = new firebase.auth.FacebookAuthProvider();
-//Facebook authentication
-export const facebookProvider = new firebase.auth.FacebookAuthProvider()
-//REGISTER with Facebook account
-export const doFacebookSignUp = () => {
- auth.signInWithPopup(facebookProvider)
- .then(result => {
- auth.currentUser.getIdToken(true)
- .then(idToken => {
- const user = result.user
- axios.get(`${backend}/auth/firebase/register`, {headers: {"token": idToken}})
- .then(res => {
- // console.log(res)
- // redirect here?
- })
- .catch(err => console.log(err))
- })
- .catch(err => console.log(err))
- })
- .catch(err => console.log(err))
-}
-//LOGIN with Facebook account
-export const doFacebookSignIn = () => {
- auth.signInWithPopup(facebookProvider)
- .then(result => {
- auth.currentUser.getIdToken(true)
- .then(idToken => {
- const user = result.user
- axios.get(`${backend}/auth/firebase/login`, {headers: {"token": idToken}})
- .then(res => {
- // console.log(res)
- // redirect here?
- })
- .catch(err => console.log(err))
- })
- .catch(err => console.log(err))
- })
- .catch(err => console.log(err))
+//Register via Firebase through a specific provider
+export const signUpThroughFirebase = (providerChosen, history) => {
+ //This provider will level up to a named one, pending button clicked
+ let provider;
+
+ //Set up switch statement to allow other types of sign ins down the road
+ switch(providerChosen) {
+ case 'google' :
+ provider = googleProvider;
+ break;
+ case 'facebook' :
+ provider = facebookProvider;
+ break;
+ default :
+ console.log('Provider not supported.');
+ break;
+ };
+
+ //Use Firebase function to create a popup of specific provider's login
+ auth.signInWithPopup(provider)
+ .then(result => {
+ //If it works, get the idToken from that login for verification use
+ auth.currentUser.getIdToken(true)
+ .then(idToken => {
+ //If it works, send over token to the backend via header
+ axios.get(`${backend}/auth/firebase/register`, {headers: {"token": idToken}})
+ .then(res => {
+ history.push('/stripe')
+ })
+ .catch(err => console.log(err));
+ })
+ .catch(err => console.log(err));
+ })
+ .catch(err => console.log(err));
}
-//Github authentication
-export const githubProvider = new firebase.auth.GithubAuthProvider()
-export const doGithubSignIn = () => auth.signInWithPopup(githubProvider)
+//Login via Firebase with a specific provider
+export const signInThroughFirebase = (providerChosen, history) => {
+ //This provider will level up to a named one, pending button clicked
+ let provider;
+
+ //Set up switch statement to allow other types of sign ins down the road
+ switch(providerChosen) {
+ case 'google' :
+ provider = googleProvider;
+ break;
+ case 'facebook' :
+ provider = facebookProvider;
+ break;
+ default :
+ console.log('Provider not supported.');
+ break;
+ };
+
+ //Use Firebase function to create a popup of specific provider's login
+ auth.signInWithPopup(provider)
+ .then(result => {
+ //If it works, get the idToken from that login for verification use
+ auth.currentUser.getIdToken(true)
+ .then(idToken => {
+ //If it works, send over token to the backend via header
+ axios.get(`${backend}/auth/firebase/login`, {headers: {"token": idToken}})
+ .then(res => {
+ history.push('/hub')
+ })
+ .catch(err => console.log(err));
+ })
+ .catch(err => console.log(err));
+ })
+ .catch(err => console.log(err));
+}
\ No newline at end of file