From 1176b62d0bbae47cab8310e0bf70640915366704 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Fri, 6 Dec 2019 14:24:36 -0800 Subject: [PATCH] Functioning login process. --- .vscode/launch.json | 12 +++++ client/{src => }/.env | 0 client/package.json | 1 + client/src/App/App.container.jsx | 45 ++++++++++++++++++- client/src/App/App.js | 4 +- firebase/functions/index.js | 30 ++++++------- .../down.yaml | 6 +++ .../up.yaml | 18 ++++++++ .../down.yaml | 19 ++++++++ .../up.yaml | 23 ++++++++++ .../down.yaml | 19 ++++++++ .../up.yaml | 21 +++++++++ .../down.yaml | 6 +++ .../up.yaml | 14 ++++++ .../down.yaml | 19 ++++++++ .../up.yaml | 23 ++++++++++ .../down.yaml | 6 +++ .../up.yaml | 13 ++++++ .../down.yaml | 6 +++ .../up.yaml | 11 +++++ .../down.yaml | 17 +++++++ .../up.yaml | 21 +++++++++ .../down.yaml | 19 ++++++++ .../up.yaml | 23 ++++++++++ 24 files changed, 354 insertions(+), 22 deletions(-) create mode 100644 .vscode/launch.json rename client/{src => }/.env (100%) create mode 100644 hasura/migrations/1575664673911_update_permission_anonymous_public_table_users/down.yaml create mode 100644 hasura/migrations/1575664673911_update_permission_anonymous_public_table_users/up.yaml create mode 100644 hasura/migrations/1575667732220_update_permission_user_public_table_users/down.yaml create mode 100644 hasura/migrations/1575667732220_update_permission_user_public_table_users/up.yaml create mode 100644 hasura/migrations/1575667738815_update_permission_user_public_table_users/down.yaml create mode 100644 hasura/migrations/1575667738815_update_permission_user_public_table_users/up.yaml create mode 100644 hasura/migrations/1575668596604_update_permission_user_public_table_users/down.yaml create mode 100644 hasura/migrations/1575668596604_update_permission_user_public_table_users/up.yaml create mode 100644 hasura/migrations/1575668601516_update_permission_user_public_table_users/down.yaml create mode 100644 hasura/migrations/1575668601516_update_permission_user_public_table_users/up.yaml create mode 100644 hasura/migrations/1575668794454_update_permission_anonymous_public_table_users/down.yaml create mode 100644 hasura/migrations/1575668794454_update_permission_anonymous_public_table_users/up.yaml create mode 100644 hasura/migrations/1575668798166_update_permission_anonymous_public_table_users/down.yaml create mode 100644 hasura/migrations/1575668798166_update_permission_anonymous_public_table_users/up.yaml create mode 100644 hasura/migrations/1575668801857_update_permission_anonymous_public_table_users/down.yaml create mode 100644 hasura/migrations/1575668801857_update_permission_anonymous_public_table_users/up.yaml create mode 100644 hasura/migrations/1575668805312_update_permission_anonymous_public_table_users/down.yaml create mode 100644 hasura/migrations/1575668805312_update_permission_anonymous_public_table_users/up.yaml diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 000000000..2f0376a0d --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,12 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Chrome", + "type": "chrome", + "request": "launch", + "url": "http://localhost:3000", + "webRoot": "${workspaceRoot}/src" + } + ] +} \ No newline at end of file diff --git a/client/src/.env b/client/.env similarity index 100% rename from client/src/.env rename to client/.env diff --git a/client/package.json b/client/package.json index c471f083c..4ff4e45df 100644 --- a/client/package.json +++ b/client/package.json @@ -4,6 +4,7 @@ "private": true, "license": "UNLICENSED", "dependencies": { + "@apollo/react-hooks": "^3.1.3", "antd": "^3.26.0", "apollo-boost": "^0.4.4", "dotenv": "^8.2.0", diff --git a/client/src/App/App.container.jsx b/client/src/App/App.container.jsx index cd4ce5e57..0fb4a4c72 100644 --- a/client/src/App/App.container.jsx +++ b/client/src/App/App.container.jsx @@ -4,19 +4,60 @@ import React, { useState, useEffect } from "react"; import firebase from "../firebase/firebase.utils"; import App from "./App"; import { Spin } from "antd"; +import { gql } from "apollo-boost"; +import { useMutation } from "@apollo/react-hooks"; +import { HttpLink } from "apollo-link-http"; +import ApolloClient from "apollo-client"; +import { InMemoryCache } from "apollo-cache-inmemory"; + +//import gql from "graphql-tag"; + +// on_conflict: { constraint: users_pkey, update_columns: [authid] } + +const UPSERT_USER = gql` + mutation upsert_user($authEmail: String!, $authToken: String!) { + insert_users( + objects: [{ email: $authEmail, authid: $authToken }] + on_conflict: { constraint: users_pkey, update_columns: [authid] } + ) { + returning { + authid + } + } + } +`; + +const client = new ApolloClient({ + link: new HttpLink({ + uri: process.env.REACT_APP_GRAPHQL_ENDPOINT + }), + cache: new InMemoryCache() +}); export default function Auth() { const [authState, setAuthState] = useState({ status: "loading" }); + // const [upsertUser] = useMutation(UPSERT_USER, { + // client + // }); useEffect(() => { return firebase.auth().onAuthStateChanged(async user => { if (user) { - console.log('Current User:', user) + console.log("Current User:", user); + + client + .mutate({ + mutation: UPSERT_USER, + variables: { authEmail: user.email, authToken: user.uid } + }) + .then(r => console.log(r)) + .catch(error => console.log("ERROR!!!!", error)); + const token = await user.getIdToken(); const idTokenResult = await user.getIdTokenResult(); const hasuraClaim = idTokenResult.claims["https://hasura.io/jwt/claims"]; - + console.log("idTokenResult", idTokenResult); if (hasuraClaim) { setAuthState({ status: "in", user, token }); } else { diff --git a/client/src/App/App.js b/client/src/App/App.js index 85280f31c..19f0a32bb 100644 --- a/client/src/App/App.js +++ b/client/src/App/App.js @@ -14,9 +14,7 @@ import initialState from "../graphql/initial-state"; import JobListContainer from "../components/job-list/job-list.container"; //Todo: Issue with this line. Not sure why. -const graphqlEndpoint = - process.env.REACT_APP_GRAPHQL_ENDPOINT || - "https://bodyshop-dev-db.herokuapp.com/v1/graphql"; +const graphqlEndpoint = process.env.REACT_APP_GRAPHQL_ENDPOINT; export default function App({ authState }) { const isIn = authState.status === "in"; diff --git a/firebase/functions/index.js b/firebase/functions/index.js index fd825124f..50cd1ede2 100644 --- a/firebase/functions/index.js +++ b/firebase/functions/index.js @@ -1,7 +1,6 @@ const functions = require("firebase-functions"); const admin = require("firebase-admin"); admin.initializeApp(functions.config().firebase); -const fetch = require("node-fetch"); //Todo: Move this to an environment parameter. const GRAPHQL_ENDPOINT = functions.config().auth.graphql_endpoint; @@ -50,22 +49,19 @@ exports.processSignUp = functions.auth.user().onCreate(user => { } }; } - //update the AuthId in the graphql server. - fetch(GRAPHQL_ENDPOINT, { - method: "POST", - headers: { - "Content-Type": "application/json", - Accept: "application/json", - "x-hasura-admin-secret": HASURA_SECRET_ADMIN_KEY - }, - body: JSON.stringify({ - query: UPSERT_USER, - variables: { authEmail: user.email, authToken: user.uid } - }) - }); - // .then(r => r.json()) - // .then(data => { - // console.log("data returned:", data); + + //Removed for now - outbound connections are not free on firebase. + // fetch(GRAPHQL_ENDPOINT, { + // method: "POST", + // headers: { + // "Content-Type": "application/json", + // Accept: "application/json", + // "x-hasura-admin-secret": HASURA_SECRET_ADMIN_KEY + // }, + // body: JSON.stringify({ + // query: UPSERT_USER, + // variables: { authEmail: user.email, authToken: user.uid } + // }) // }); // Set custom user claims on this newly created user. diff --git a/hasura/migrations/1575664673911_update_permission_anonymous_public_table_users/down.yaml b/hasura/migrations/1575664673911_update_permission_anonymous_public_table_users/down.yaml new file mode 100644 index 000000000..8d7fedcea --- /dev/null +++ b/hasura/migrations/1575664673911_update_permission_anonymous_public_table_users/down.yaml @@ -0,0 +1,6 @@ +- args: + role: anonymous + table: + name: users + schema: public + type: drop_insert_permission diff --git a/hasura/migrations/1575664673911_update_permission_anonymous_public_table_users/up.yaml b/hasura/migrations/1575664673911_update_permission_anonymous_public_table_users/up.yaml new file mode 100644 index 000000000..6a7e783a9 --- /dev/null +++ b/hasura/migrations/1575664673911_update_permission_anonymous_public_table_users/up.yaml @@ -0,0 +1,18 @@ +- args: + permission: + allow_upsert: true + check: {} + columns: + - authid + - created_at + - email + - updated_at + localPresets: + - key: "" + value: "" + set: {} + role: anonymous + table: + name: users + schema: public + type: create_insert_permission diff --git a/hasura/migrations/1575667732220_update_permission_user_public_table_users/down.yaml b/hasura/migrations/1575667732220_update_permission_user_public_table_users/down.yaml new file mode 100644 index 000000000..d5fbeec68 --- /dev/null +++ b/hasura/migrations/1575667732220_update_permission_user_public_table_users/down.yaml @@ -0,0 +1,19 @@ +- args: + role: user + table: + name: users + schema: public + type: drop_update_permission +- args: + permission: + columns: [] + filter: {} + localPresets: + - key: "" + value: "" + set: {} + role: user + table: + name: users + schema: public + type: create_update_permission diff --git a/hasura/migrations/1575667732220_update_permission_user_public_table_users/up.yaml b/hasura/migrations/1575667732220_update_permission_user_public_table_users/up.yaml new file mode 100644 index 000000000..8ec4d6f35 --- /dev/null +++ b/hasura/migrations/1575667732220_update_permission_user_public_table_users/up.yaml @@ -0,0 +1,23 @@ +- args: + role: user + table: + name: users + schema: public + type: drop_update_permission +- args: + permission: + columns: + - email + - authid + - created_at + - updated_at + filter: {} + localPresets: + - key: "" + value: "" + set: {} + role: user + table: + name: users + schema: public + type: create_update_permission diff --git a/hasura/migrations/1575667738815_update_permission_user_public_table_users/down.yaml b/hasura/migrations/1575667738815_update_permission_user_public_table_users/down.yaml new file mode 100644 index 000000000..344aff306 --- /dev/null +++ b/hasura/migrations/1575667738815_update_permission_user_public_table_users/down.yaml @@ -0,0 +1,19 @@ +- args: + role: user + table: + name: users + schema: public + type: drop_select_permission +- args: + permission: + allow_aggregations: false + columns: + - authid + - email + computed_fields: [] + filter: {} + role: user + table: + name: users + schema: public + type: create_select_permission diff --git a/hasura/migrations/1575667738815_update_permission_user_public_table_users/up.yaml b/hasura/migrations/1575667738815_update_permission_user_public_table_users/up.yaml new file mode 100644 index 000000000..c4393514e --- /dev/null +++ b/hasura/migrations/1575667738815_update_permission_user_public_table_users/up.yaml @@ -0,0 +1,21 @@ +- args: + role: user + table: + name: users + schema: public + type: drop_select_permission +- args: + permission: + allow_aggregations: false + columns: + - authid + - email + - created_at + - updated_at + computed_fields: [] + filter: {} + role: user + table: + name: users + schema: public + type: create_select_permission diff --git a/hasura/migrations/1575668596604_update_permission_user_public_table_users/down.yaml b/hasura/migrations/1575668596604_update_permission_user_public_table_users/down.yaml new file mode 100644 index 000000000..5022ed879 --- /dev/null +++ b/hasura/migrations/1575668596604_update_permission_user_public_table_users/down.yaml @@ -0,0 +1,6 @@ +- args: + role: user + table: + name: users + schema: public + type: drop_insert_permission diff --git a/hasura/migrations/1575668596604_update_permission_user_public_table_users/up.yaml b/hasura/migrations/1575668596604_update_permission_user_public_table_users/up.yaml new file mode 100644 index 000000000..abd3f4a2f --- /dev/null +++ b/hasura/migrations/1575668596604_update_permission_user_public_table_users/up.yaml @@ -0,0 +1,14 @@ +- args: + permission: + allow_upsert: true + check: {} + columns: [] + localPresets: + - key: "" + value: "" + set: {} + role: user + table: + name: users + schema: public + type: create_insert_permission diff --git a/hasura/migrations/1575668601516_update_permission_user_public_table_users/down.yaml b/hasura/migrations/1575668601516_update_permission_user_public_table_users/down.yaml new file mode 100644 index 000000000..c5e1a383e --- /dev/null +++ b/hasura/migrations/1575668601516_update_permission_user_public_table_users/down.yaml @@ -0,0 +1,19 @@ +- args: + role: user + table: + name: users + schema: public + type: drop_insert_permission +- args: + permission: + check: {} + columns: [] + localPresets: + - key: "" + value: "" + set: {} + role: user + table: + name: users + schema: public + type: create_insert_permission diff --git a/hasura/migrations/1575668601516_update_permission_user_public_table_users/up.yaml b/hasura/migrations/1575668601516_update_permission_user_public_table_users/up.yaml new file mode 100644 index 000000000..f91554e06 --- /dev/null +++ b/hasura/migrations/1575668601516_update_permission_user_public_table_users/up.yaml @@ -0,0 +1,23 @@ +- args: + role: user + table: + name: users + schema: public + type: drop_insert_permission +- args: + permission: + check: {} + columns: + - authid + - email + - created_at + - updated_at + localPresets: + - key: "" + value: "" + set: {} + role: user + table: + name: users + schema: public + type: create_insert_permission diff --git a/hasura/migrations/1575668794454_update_permission_anonymous_public_table_users/down.yaml b/hasura/migrations/1575668794454_update_permission_anonymous_public_table_users/down.yaml new file mode 100644 index 000000000..adfb8ed02 --- /dev/null +++ b/hasura/migrations/1575668794454_update_permission_anonymous_public_table_users/down.yaml @@ -0,0 +1,6 @@ +- args: + role: anonymous + table: + name: users + schema: public + type: drop_update_permission diff --git a/hasura/migrations/1575668794454_update_permission_anonymous_public_table_users/up.yaml b/hasura/migrations/1575668794454_update_permission_anonymous_public_table_users/up.yaml new file mode 100644 index 000000000..c7d361254 --- /dev/null +++ b/hasura/migrations/1575668794454_update_permission_anonymous_public_table_users/up.yaml @@ -0,0 +1,13 @@ +- args: + permission: + columns: [] + filter: {} + localPresets: + - key: "" + value: "" + set: {} + role: anonymous + table: + name: users + schema: public + type: create_update_permission diff --git a/hasura/migrations/1575668798166_update_permission_anonymous_public_table_users/down.yaml b/hasura/migrations/1575668798166_update_permission_anonymous_public_table_users/down.yaml new file mode 100644 index 000000000..56426a31b --- /dev/null +++ b/hasura/migrations/1575668798166_update_permission_anonymous_public_table_users/down.yaml @@ -0,0 +1,6 @@ +- args: + role: anonymous + table: + name: users + schema: public + type: drop_select_permission diff --git a/hasura/migrations/1575668798166_update_permission_anonymous_public_table_users/up.yaml b/hasura/migrations/1575668798166_update_permission_anonymous_public_table_users/up.yaml new file mode 100644 index 000000000..244b9e444 --- /dev/null +++ b/hasura/migrations/1575668798166_update_permission_anonymous_public_table_users/up.yaml @@ -0,0 +1,11 @@ +- args: + permission: + allow_aggregations: false + columns: [] + filter: {} + limit: null + role: anonymous + table: + name: users + schema: public + type: create_select_permission diff --git a/hasura/migrations/1575668801857_update_permission_anonymous_public_table_users/down.yaml b/hasura/migrations/1575668801857_update_permission_anonymous_public_table_users/down.yaml new file mode 100644 index 000000000..44cc20727 --- /dev/null +++ b/hasura/migrations/1575668801857_update_permission_anonymous_public_table_users/down.yaml @@ -0,0 +1,17 @@ +- args: + role: anonymous + table: + name: users + schema: public + type: drop_select_permission +- args: + permission: + allow_aggregations: false + columns: [] + computed_fields: [] + filter: {} + role: anonymous + table: + name: users + schema: public + type: create_select_permission diff --git a/hasura/migrations/1575668801857_update_permission_anonymous_public_table_users/up.yaml b/hasura/migrations/1575668801857_update_permission_anonymous_public_table_users/up.yaml new file mode 100644 index 000000000..1fa476545 --- /dev/null +++ b/hasura/migrations/1575668801857_update_permission_anonymous_public_table_users/up.yaml @@ -0,0 +1,21 @@ +- args: + role: anonymous + table: + name: users + schema: public + type: drop_select_permission +- args: + permission: + allow_aggregations: false + columns: + - authid + - email + - created_at + - updated_at + computed_fields: [] + filter: {} + role: anonymous + table: + name: users + schema: public + type: create_select_permission diff --git a/hasura/migrations/1575668805312_update_permission_anonymous_public_table_users/down.yaml b/hasura/migrations/1575668805312_update_permission_anonymous_public_table_users/down.yaml new file mode 100644 index 000000000..3aa2385ed --- /dev/null +++ b/hasura/migrations/1575668805312_update_permission_anonymous_public_table_users/down.yaml @@ -0,0 +1,19 @@ +- args: + role: anonymous + table: + name: users + schema: public + type: drop_update_permission +- args: + permission: + columns: [] + filter: {} + localPresets: + - key: "" + value: "" + set: {} + role: anonymous + table: + name: users + schema: public + type: create_update_permission diff --git a/hasura/migrations/1575668805312_update_permission_anonymous_public_table_users/up.yaml b/hasura/migrations/1575668805312_update_permission_anonymous_public_table_users/up.yaml new file mode 100644 index 000000000..c932a3cd4 --- /dev/null +++ b/hasura/migrations/1575668805312_update_permission_anonymous_public_table_users/up.yaml @@ -0,0 +1,23 @@ +- args: + role: anonymous + table: + name: users + schema: public + type: drop_update_permission +- args: + permission: + columns: + - authid + - email + - created_at + - updated_at + filter: {} + localPresets: + - key: "" + value: "" + set: {} + role: anonymous + table: + name: users + schema: public + type: create_update_permission