Guest User

ServerJs NodeJs ExpressJs

a guest
Aug 22nd, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // var firebase = require('firebase');
  2. var firebase = require("firebase-admin");
  3. var email   = require("emailjs/email");
  4. var server  = email.server.connect({
  5.    user:    "XXXXXX",
  6.    password:"XXXXXXXX",
  7.    host:    "smtp.gmail.com",
  8.    ssl:     true
  9. });
  10.  
  11.  
  12.  
  13.  
  14.  
  15. firebase.initializeApp({
  16.   credential: firebase.credential.cert('./Civil Service-XXXXXX80.json'),
  17.   databaseURL: "https://cXXvil-seXXiXXe-XXXX.firebaseio.com"
  18. });
  19. var LocalStorage = require('node-localstorage').LocalStorage;
  20. var localStorage = new LocalStorage('./scratch');
  21.    
  22.  
  23.  
  24. var signed = false;
  25. var http = require('http');
  26. var util = require('util');
  27. var fs = require('fs');
  28. var express = require('express');
  29. var app = express();
  30. var router = express.Router();
  31. var path    = require("path");
  32.  
  33. var url=require('url');
  34. var authenticationFlag = false;
  35. var userid = localStorage.getItem('currentUserID');
  36. var index = fs.readFileSync('index.html');
  37. var users = fs.readFileSync('users.html');
  38. app.use(express.static('public'));
  39.  
  40.  
  41. /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
  42.  
  43.  
  44.  
  45. app.post('/sendmail', function(req,res, next){
  46.     var to = '';
  47.     var from = 'nom@XXXtXc.com';
  48.     var subject = '';
  49.     var message = '';
  50.     req.on('data', function (chunk) {
  51.         var obj = JSON.parse(chunk);
  52.         to = obj.to;
  53.         subject = obj.subject;
  54.         message = obj.message;
  55.         server.send({
  56.            text:    message,
  57.            from:    "nom@XXXXic.com",
  58.            to:      to,
  59.            cc:      "",
  60.            subject: subject
  61.         }, function(err, message) {
  62.           console.log(err || message);
  63.         });
  64.         res.status(200).send('Success');
  65.   });
  66. });
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73. app.post('/server', function(req,res, next){
  74.     var idToken = '';
  75.     req.on('data', function (chunk) {
  76.         var obj = JSON.parse(chunk);
  77.         idToken = obj.idToken;
  78.        firebase.auth().verifyIdToken(idToken)
  79.           .then(function(decodedToken) {
  80.            var uid = decodedToken.uid;
  81.            console.log("UID:"+uid);
  82.            localStorage.setItem('authflag', 'true');
  83.            localStorage.setItem('currentUserID', uid);
  84.            console.log("IN SERVER:"+localStorage.getItem('authflag'));
  85.            res.status(200).send('Success');
  86.          }).catch(function(error) {
  87.             console.log('ERROR IS:'+error);
  88.             authenticationFlag = false;
  89.             res.status(400).send('Wrong details');
  90.        });
  91.   });
  92. });
  93.  
  94. function hasFilledDetails(){
  95.   var userid = localStorage.getItem('currentUserID');
  96.   return firebase.database().ref('/users/' + userid).on('value', function(snapshot) {
  97.     if (snapshot.val().phone == '' || snapshot.val().phone == null || snapshot.val().phone == undefined) {
  98.       return false;
  99.     }else{
  100.       return true;
  101.     }
  102.   });
  103. }
  104.  
  105. function isApproved(){
  106.   var userid = localStorage.getItem('currentUserID');
  107.   return firebase.database().ref('/users/' + userid).on('value', function(snapshot) {
  108.     if (snapshot.val().approved === '') {
  109.       return false;
  110.     }else{
  111.       return true;
  112.     }
  113.   });
  114. }
  115.  
  116.  
  117. app.get('/logout', function(req, res){
  118.   localStorage.removeItem('currentUserID');
  119.   localStorage.setItem('authflag', 'false');
  120.   res.sendFile(path.join(__dirname+'/logout.html'));
  121. });
  122.  
  123. app.get('/login',function(req,res){
  124.   console.log("AUTH FLAG IS:"+localStorage.getItem('authflag'));
  125.   console.log(authenticationFlag);
  126.   if (localStorage.getItem('authflag') == 'true') {
  127.    
  128.     if (hasFilledDetails()) {
  129.       console.log("REDIRECTING TO PROFILE HAS FILLED");
  130.       res.redirect('/profile');
  131.     }else{
  132.       console.log("REDIRECTING TO SIGNUP2 HAS NOT FILLED");
  133.       res.redirect('/signup2');
  134.     }
  135.    
  136.   }else{
  137.     res.sendFile(path.join(__dirname+'/login.html'));
  138.   }
  139.    
  140. });
  141.  
  142.  
  143.  
  144. app.get('/signup2',function(req,res){
  145.  
  146.   if (localStorage.getItem('authflag') == 'true') {
  147.       firebase.database().ref('/users/' + userid).on('value', function(snapshot) {
  148.         if (snapshot.val().phone == '' || snapshot.val().phone == null || snapshot.val().phone == undefined) {
  149.           console.log("SENDING SIGNUP2 FILE");
  150.           res.sendFile(path.join(__dirname+'/signup2.html'));
  151.         }else if(snapshot.val().approved == '0' || snapshot.val().approved == 0){
  152.           console.log("REDIRECTING TO APPROVAL");
  153.           res.redirect('/approval');
  154.         }else{
  155.           console.log("REDIRECTING TO DASHBOARD");
  156.           res.redirect('/dashboard');
  157.           //res.sendFile(path.join(__dirname+'/login.html'));
  158.         }
  159.       });
  160.   }else{
  161.     res.sendFile(path.join(__dirname+'/login.html'));
  162.   }
  163.  
  164. });
  165.  
  166.  
  167.  
  168.  
  169. app.get('/dashboard', authenticationRequired ,function(req,res){
  170.   firebase.database().ref('/users/' + userid).on('value', function(snapshot) {
  171.     if (snapshot.val() !== null) {
  172.       if (snapshot.val().phone == '' || snapshot.val().phone == null || snapshot.val().phone == undefined) {
  173.         res.redirect('/signup2');
  174.       }else if(snapshot.val().approved == '0' || snapshot.val().approved == 0){
  175.           console.log("APPROVED IS:"+snapshot.val().approved);
  176.             // res.redirect('/approval');
  177.             res.sendFile(path.join(__dirname+'/site/approval.html'));
  178.       }else{
  179.         res.sendFile(path.join(__dirname+'/index.html'));
  180.       }
  181.     }else{
  182.       res.redirect('/logout');
  183.     }
  184.    
  185.   });
  186. });
  187. app.get('/', authenticationRequired ,function(req,res){
  188.   firebase.database().ref('/users/' + userid).on('value', function(snapshot) {
  189.     if (snapshot.val().phone == '' || snapshot.val().phone == null || snapshot.val().phone == undefined) {
  190.       res.redirect('/signup2');
  191.     }else if(snapshot.val().approved == '0' || snapshot.val().approved == 0){
  192.           // res.redirect('/approval');
  193.           res.sendFile(path.join(__dirname+'/site/approval.html'));
  194.     }else{
  195.       res.redirect('/dashboard');
  196.     }
  197.   });
  198. });
  199.  
  200.   app.get('/approval', authenticationRequired ,function(req,res){
  201.       firebase.database().ref('/users/' + userid).on('value', function(snapshot) {
  202.         if (snapshot.val().phone == '' || snapshot.val().phone == null || snapshot.val().phone == undefined) {
  203.           res.redirect('/signup2');
  204.         }else if(snapshot.val().approved == '0' || snapshot.val().approved == 0){
  205.               res.sendFile(path.join(__dirname+'/site/approval.html'));
  206.         }else{
  207.           res.sendFile(path.join(__dirname+'/site/approval.html'));
  208.         }
  209.       });
  210.   });
  211. app.get('/firebase-messaging-sw.js', authenticationRequired ,function(req,res){
  212.   res.sendFile(path.join(__dirname+'/public/js/firebase-messaging-sw.js'));
  213.   //__dirname : It will resolve to your project folder.
  214. });
  215.  
  216. app.get('/directory', authenticationRequired ,function(req,res){
  217.   firebase.database().ref('/users/' + userid).on('value', function(snapshot) {
  218.     if (snapshot.val().phone == '' || snapshot.val().phone == null || snapshot.val().phone == undefined) {
  219.       res.redirect('/signup2');
  220.     }else if(snapshot.val().approved == '0' || snapshot.val().approved == 0){
  221.           res.redirect('/approval');
  222.     }else{
  223.       res.sendFile(path.join(__dirname+'/site/directory.html'));
  224.     }
  225.   });
  226.     //res.sendFile(path.join(__dirname+'/site/directory.html'));
  227. });
  228. // app.get('/signup2', authenticationRequired ,function(req,res){
  229. //   res.sendFile(path.join(__dirname+'/signup2.html'));
  230. // });
  231. app.get('/messages', authenticationRequired ,function(req,res){
  232.   firebase.database().ref('/users/' + userid).on('value', function(snapshot) {
  233.     if (snapshot.val().phone == '' || snapshot.val().phone == null || snapshot.val().phone == undefined) {
  234.       res.redirect('/signup2');
  235.     }else if(snapshot.val().approved == '0' || snapshot.val().approved == 0){
  236.           res.redirect('/approval');
  237.     }else{
  238.       res.sendFile(path.join(__dirname+'/site/messages.html'));
  239.     }
  240.   });
  241.   //res.sendFile(path.join(__dirname+'/site/messages.html'));
  242. });
  243. app.get('/settings', authenticationRequired ,function(req,res){
  244.   firebase.database().ref('/users/' + userid).on('value', function(snapshot) {
  245.     if (snapshot.val().phone == '' || snapshot.val().phone == null || snapshot.val().phone == undefined) {
  246.       res.redirect('/signup2');
  247.     }else if(snapshot.val().approved == '0' || snapshot.val().approved == 0){
  248.           res.redirect('/approval');
  249.     }else{
  250.       res.sendFile(path.join(__dirname+'/site/settings.html'));
  251.     }
  252.   });
  253.   // res.sendFile(path.join(__dirname+'/site/settings.html'));
  254. });
  255.  
  256. app.get('/profile', authenticationRequired ,function(req,res){
  257.   // res.sendFile(path.join(__dirname+'/site/profile.html'));
  258.   firebase.database().ref('/users/' + userid).on('value', function(snapshot) {
  259.     if (snapshot.val().phone == '' || snapshot.val().phone == null || snapshot.val().phone == undefined) {
  260.       res.redirect('/signup2');
  261.     }else if(snapshot.val().approved == '0' || snapshot.val().approved == 0){
  262.           res.redirect('/approval');
  263.     }else{
  264.       res.sendFile(path.join(__dirname+'/site/profile.html'));
  265.     }
  266.   });
  267. });
  268. app.get('/viewuser', authenticationRequired ,function(req,res){
  269.   firebase.database().ref('/users/' + userid).on('value', function(snapshot) {
  270.     if (snapshot.val().phone == '' || snapshot.val().phone == null || snapshot.val().phone == undefined) {
  271.       res.redirect('/signup2');
  272.     }else if(snapshot.val().approved == '0' || snapshot.val().approved == 0){
  273.           res.redirect('/approval');
  274.     }else{
  275.       res.sendFile(path.join(__dirname+'/site/viewuser.html'));
  276.     }
  277.   });
  278.     //res.sendFile(path.join(__dirname+'/site/viewuser.html'));
  279. });
  280. app.get('/news', authenticationRequired,function(req,res){
  281.   firebase.database().ref('/users/' + userid).on('value', function(snapshot) {
  282.     if (snapshot.val().phone == '' || snapshot.val().phone == null || snapshot.val().phone == undefined) {
  283.       res.redirect('/signup2');
  284.     }else if(snapshot.val().approved == '0' || snapshot.val().approved == 0){
  285.           res.redirect('/approval');
  286.     }else{
  287.       res.sendFile(path.join(__dirname+'/site/news.html'));
  288.     }
  289.   });
  290.  //res.sendFile(path.join(__dirname+'/site/news.html'));
  291. });
  292. app.get('/viewnews', authenticationRequired,function(req,res){
  293.   firebase.database().ref('/users/' + userid).on('value', function(snapshot) {
  294.     if (snapshot.val().phone == '' || snapshot.val().phone == null || snapshot.val().phone == undefined) {
  295.       res.redirect('/signup2');
  296.     }else if(snapshot.val().approved == '0' || snapshot.val().approved == 0){
  297.           res.redirect('/approval');
  298.     }else{
  299.       res.sendFile(path.join(__dirname+'/site/newsdetail.html'));
  300.     }
  301.   });
  302.  //res.sendFile(path.join(__dirname+'/site/viewnews.html'));
  303. });
  304.  
  305. app.get('/publications', authenticationRequired,function(req,res){
  306.   firebase.database().ref('/users/' + userid).on('value', function(snapshot) {
  307.     if (snapshot.val().phone == '' || snapshot.val().phone == null || snapshot.val().phone == undefined) {
  308.       res.redirect('/signup2');
  309.     }else if(snapshot.val().approved == '0' || snapshot.val().approved == 0){
  310.           res.redirect('/approval');
  311.     }else{
  312.       res.sendFile(path.join(__dirname+'/site/publications.html'));
  313.     }
  314.   });
  315.   //res.sendFile(path.join(__dirname+'/site/publications.html'));
  316. });
  317.  
  318.  
  319. app.get('*', function(req, res){
  320.   res.sendFile(path.join(__dirname+'/404.html'));
  321. });
  322.  
  323. //app.use('/', router);
  324. app.listen(9615);
  325.  
  326.  
  327.  
  328. function authenticationRequired(req, res, next) {
  329.    
  330.    var authflag = localStorage.getItem('authflag');
  331.    console.log("In AUTH FUNCTION: "+authflag);
  332.    if(authflag == 'true') {
  333.        next()
  334.    } else {
  335.        res.status(401).sendFile(path.join(__dirname+'/login.html'));
  336.    }
  337. }
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345. console.log('Server running at http://localhost:9615/');
Add Comment
Please, Sign In to add comment