Firebase Update

This commit is contained in:
Lukas Nowy
2018-12-22 23:30:39 +01:00
parent befb44764d
commit acffe619b3
11523 changed files with 1614327 additions and 930246 deletions

View File

@ -1,120 +1,160 @@
var express = require('express');
var router = express.Router();
var session;
// var firebase = require('firebase');
var admin = require('firebase-admin');
//Database
var postgres = require("./../db-connect/db-connect");
// GoogleOauth2.0
passport = require('passport'),
auth = require('../public/login/auth');
auth(passport);
router.use(passport.initialize());
cookieParser = require('cookie-parser'),
cookieSession = require('cookie-session');
// Initialize Firebase
// const config = {
// apiKey: "AIzaSyCuvwf78cmSDoZ2yS4XxHZhnjUn7yIHYfw",
// authDomain: "test-667ca.firebaseapp.com",
// databaseURL: "https://test-667ca.firebaseio.com",
// projectId: "test-667ca",
// storageBucket: "test-667ca.appspot.com",
// messagingSenderId: "221332577314"
// };
// firebase.initializeApp(config);
router.use(cookieSession({
name: 'session',
keys: ['aoisdzflkudheowe777elkjv']
}));
var serviceAccount = require('../login/firebaseAdminKey.json');
router.use(cookieParser());
function isLoggedIn(req, res, next) {
console.log("Auth: ", req.session.passport.user.profile.id);
if (req.session.passport.user.profile.id) {
return next();
}
res.redirect('/')
}
router.get('/', (req, res) => {
// if (req.session.passport.user.token) {
// res.redirect('/dash');
// } else {
res.redirect('/auth/google');
// }
});
router.get('/auth/google', passport.authenticate('google', {
scope: ['https://www.googleapis.com/auth/userinfo.profile']
}));
router.get('/auth/google/callback',
passport.authenticate('google', {failureRedirect:'/'}),
(req, res) => {
// req.session.passport.user.token = req.user.token;
res.redirect('/dash');
}
);
router.get('/logout', (req, res) => {
req.logout();
res.redirect("https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=http://localhost:7000/");
var firebaseAdmin = admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: 'https://test-667ca.firebaseio.com'
});
router.get('/dash', isLoggedIn, function(req, res, next) {
// console.log("Session: ", req.session.passport.user.token);
// console.log("User ID: " + req.session.passport.user.profile.id);
// if (req.session.passport.user.token) {
res.render("index");
// Login und Dash
router.get('/', function(req, res, next) {
res.render('index');
});
router.get('/dash/:idtoken', function(req, res, next) {
// } else {
// res.redirect('/auth/google');
// }
var token = req.params.idtoken;
var uid;
firebaseAdmin.auth().verifyIdToken(token)
.then(function(decodedToken) {
uid = decodedToken.uid;
// HIER WEITER MACHEN
// uid ist nur hier drinen verfügbar
}).catch(function(error) {
console.log(error)
});
res.render('dash');
});
router.get('/logout', (req, res, next) => {
});
// SmartShopper
//GET Own shoppinglists as JSON
router.get("/myshoppinglists", async function(req, res, next) {
try {
//Get user id: req.session.passport.user.profile.id
res.status(200).send(await postgres.getShoppinglistsAdmin(req.session.passport.user.profile.id));
}
catch(err) {
res.status(400).send(await err);
}
router.get("/myshoppinglists",async function(req, res, next) {
var token = req.query.idtoken;
console.log("/myshoppinglists idtoken: ", token)
firebaseAdmin.auth().verifyIdToken(token)
.then(async function(decodedToken) {
uid = decodedToken.uid;
console.log("uid", uid)
try {
//Get user id: req.session.passport.user.profile.id
res.status(200).send(await postgres.getShoppinglistsAdmin(uid));
}
catch(err) {
res.status(400).send(await err);
}
}).catch(function(error) {
console.log(error)
});
});
//GET Shared shoppinglists as JSON
router.get("/sharedshoppinglists", async function(req, res, next) {
try {
//Get user id: req.session.passport.user.profile.id
res.status(200).send(await postgres.getShoppinglistsShared(req.session.passport.user.profile.id));
}
catch(err) {
res.status(400).send(await err);
}
var token = req.query.idtoken;
console.log("/sharedshoppinglists idtoken: ", token)
var uid;
firebaseAdmin.auth().verifyIdToken(token)
.then(async function(decodedToken) {
uid = decodedToken.uid;
console.log("UID: ", uid);
try {
//Get user id: das da oben
res.status(200).send(await postgres.getShoppinglistsShared(uid));
}
catch(err) {
res.status(400).send(await err);
}
}).catch( async function(error) {
console.log(error)
});
});
//POST new shoppinglist
router.post("/shoppinglist", async function(req, res, next) {
try {
res.status(200).send(await postgres.newShoppinglist(req.body.name, req.body.description, req.session.passport.user.profile.id, req.body.color));
}
catch(err) {
res.status(400).send(await err);
}
});
console.log("/shoppinglist idtoken: ", req.body.idtoken)
var token = req.body.idtoken;
var uid;
firebaseAdmin.auth().verifyIdToken(token)
.then(async function(decodedToken) {
uid = decodedToken.uid;
console.log("UID: ", uid);
console.log("So andere sachen: ", req.body.name, req.body.description);
try {
res.status(200).send(await postgres.newShoppinglist(req.body.name, req.body.description, uid, req.body.color));
}
catch(err) {
res.status(400).send(await err);
}
}).catch(function(error) {
console.log(error)
});
});
//GET Shoppinglist detail
router.get("/shoppinglist_json/:sl_id", async (req, res) => {
try {
res.status(200).send(await postgres.displayShoppinglist(req.params.sl_id, req.session.passport.user.profile.id));
}
catch(err) {
res.status(400).send(await err);
}
var token = req.query.idtoken;
var uid;
firebaseAdmin.auth().verifyIdToken(token)
.then(async function(decodedToken) {
uid = decodedToken.uid;
console.log("UID: ", uid);
try {
res.status(200).send(await postgres.displayShoppinglist(req.params.sl_id, uid));
}
catch(err) {
res.status(400).send(await err);
}
}).catch(function(error) {
console.log(error)
});
});
//DELETE Shoppinglist
@ -159,7 +199,15 @@ router.get("/test1", (req, res) => {
});
router.get("/userinfo_json", (req, res) => {
res.send(req.session.passport.user);
var token = req.query.idtoken;
console.log("/userinfo_json idtoken: ", token)
firebaseAdmin.auth().verifyIdToken(token)
.then(function(decodedToken) {
res.send(decodedToken);
}).catch(function(error) {
console.log(error)
});
});
// Invite System
@ -175,16 +223,22 @@ router.post("/invite", async (req, res) => {
});
router.get("/invite/:link", async (req, res) => {
try {
await postgres.verifyInvite(req.params.link, req.session.passport.user.profile.id);
res.redirect("/dash");
}
catch(err) {
res.redirect("/dash");
}
var token = req.query.idtoken;
var uid;
firebaseAdmin.auth().verifyIdToken(token)
.then(function(decodedToken) {
uid = decodedToken.uid;
console.log("UID: ", uid);
try {
postgres.verifyInvite(req.params.link, uid);
res.redirect("/dash");
}
catch(err) {
res.redirect("/dash");
}
}).catch(function(error) {
console.log(error)
});
});
module.exports = router;