diff --git a/.gitignore b/.gitignore
index b512c09..55e810b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
-node_modules
\ No newline at end of file
+node_modules
+keys.js
diff --git a/package-lock.json b/package-lock.json
index a9023b7..9a4b6e7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -564,6 +564,11 @@
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
},
+ "oauth": {
+ "version": "0.9.15",
+ "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz",
+ "integrity": "sha1-vR/vr2hslrdUda7VGWQS/2DPucE="
+ },
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -595,11 +600,49 @@
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
"integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
},
+ "passport": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz",
+ "integrity": "sha1-xQlWkTR71a07XhgCOMORTRbwWBE=",
+ "requires": {
+ "passport-strategy": "1.0.0",
+ "pause": "0.0.1"
+ }
+ },
+ "passport-google-oauth20": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/passport-google-oauth20/-/passport-google-oauth20-1.0.0.tgz",
+ "integrity": "sha1-O5YOih1w0dvnlGFcgnxoxAOSpdA=",
+ "requires": {
+ "passport-oauth2": "1.4.0"
+ }
+ },
+ "passport-oauth2": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/passport-oauth2/-/passport-oauth2-1.4.0.tgz",
+ "integrity": "sha1-9i+BWDy+EmCb585vFguTlaJ7hq0=",
+ "requires": {
+ "oauth": "0.9.15",
+ "passport-strategy": "1.0.0",
+ "uid2": "0.0.3",
+ "utils-merge": "1.0.0"
+ }
+ },
+ "passport-strategy": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
+ "integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ="
+ },
"path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
+ "pause": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
+ "integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10="
+ },
"pg": {
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/pg/-/pg-7.4.1.tgz",
@@ -981,6 +1024,11 @@
"integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
"optional": true
},
+ "uid2": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz",
+ "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I="
+ },
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
diff --git a/package.json b/package.json
index 2a29f73..2419ee1 100644
--- a/package.json
+++ b/package.json
@@ -7,7 +7,8 @@
"npm": "5.6.0"
},
"scripts": {
- "start": "node ./bin/www"
+ "start": "node ./bin/www",
+ "dev": "nodemon ./bin/www"
},
"dependencies": {
"body-parser": "~1.18.2",
@@ -19,6 +20,8 @@
"leaflet-draw": "^1.0.2",
"morgan": "~1.9.0",
"mssql": "^4.1.0",
+ "passport": "^0.4.0",
+ "passport-google-oauth20": "^1.0.0",
"pg": "*",
"postgeo": "*",
"serve-favicon": "~2.4.5"
diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css
index 792c4f7..948cd05 100644
--- a/public/stylesheets/style.css
+++ b/public/stylesheets/style.css
@@ -10,7 +10,7 @@ html, body {
height: 100px;
}
.outer {
- top: 50px;
+ top: 0px;
left: 0;
right: 0;
bottom: 0;
@@ -19,7 +19,7 @@ html, body {
height: auto;
}
#map {
- height: 100%;
+ height: 85%;
}
body {
margin:0;
@@ -31,7 +31,7 @@ a {
}
#leg, #leg_title {
position:absolute;
- top:50px;
+ top:0px;
right:10px;
width:100px;
padding:10px;
@@ -45,7 +45,7 @@ a {
overflow:auto;
}
#leg_title {
- top:10px;
+ top:0px;
}
#leg_items {
position:relative;
@@ -62,4 +62,13 @@ a {
bottom: 46px;
height: 48px;
width: 48px;
+}
+.btn.btn-primary {
+ margin-top: 5px;
+}
+.form-control{
+ margin-top: 5px;
+}
+.col.col-lg-3{
+ margin-top: 11px;
}
\ No newline at end of file
diff --git a/routes/authRoutes.js b/routes/authRoutes.js
new file mode 100644
index 0000000..55da634
--- /dev/null
+++ b/routes/authRoutes.js
@@ -0,0 +1,29 @@
+const passport = require("passport"); // from npm
+
+module.exports = router => {
+ // Enter to authenticate the user
+ router.get(
+ "/auth/google",
+ passport.authenticate("google", {
+ scope: ["profile", "email"]
+ })
+ );
+
+ // Page after authenticate
+ router.get(
+ "/auth/google/callback",
+ passport.authenticate("google"),
+ (err, req, res, next) => {
+ // custom error handler to catch any errors, such as TokenError
+ if (err.name === "TokenError") {
+ res.redirect("http://nexusbr.com"); // redirect them back to the login page
+ } else {
+ // Handle other errors here
+ }
+ },
+ (req, res) => {
+ // On success, redirect back to '/'
+ res.redirect("/");
+ }
+ );
+};
diff --git a/routes/index.js b/routes/index.js
index 17992d1..0ab121c 100644
--- a/routes/index.js
+++ b/routes/index.js
@@ -1,21 +1,10 @@
var express = require("express");
-var ms_sql = require("mssql");
-var conexao = require("../src/connectionsConfiguration");
var router = express.Router();
+require("../services/passport");
+require("../services/databases");
+const authRoutes = require("./authRoutes");
-// Conexão com Postgres
-var pg = require("pg");
-pg.defaults.poolSize = 25;
-
-// Creates global pool connection with MS SqlServer
-
-global.poolPg = new pg.Pool(conexao.pg);
-
-global.poolMsql = new ms_sql.ConnectionPool(conexao.msql, function(err) {
- if (err) {
- console.log("Não conectou \n" + err);
- }
-});
+authRoutes(router);
/* GET home page. */
router.get("/", function(req, res, next) {
@@ -27,11 +16,12 @@ router.get("/map/:nome", function(req, res, next) {
var coordenadas = require("../src/findCoordinatesFromConsumer");
var retorno = numeroConsumidor(req.params.nome, function(numero, nome) {
console.log("Terminou tudo: " + numero + " Nome: " + nome);
+ var codigoComNome = numero + " - " + nome;
var retorno = coordenadas(numero, function(x, y) {
console.log("Terminou procura coordenadas x: " + x + " y: " + y);
res.render("map", {
codigo: numero,
- consumidor: nome,
+ consumidor: codigoComNome,
fator_zoom: 23,
title: "NEXUS",
lat: y,
@@ -41,7 +31,7 @@ router.get("/map/:nome", function(req, res, next) {
});
});
-router.get("http://127.0.0.1/ponto", function(req, res) {
+router.get("http://nexusbr.dyndns-ip.com:3000/ponto", function(req, res) {
var coord = {};
console.log("Postou: ");
});
diff --git a/services/databases.js b/services/databases.js
new file mode 100644
index 0000000..d6c3d6c
--- /dev/null
+++ b/services/databases.js
@@ -0,0 +1,14 @@
+var ms_sql = require("mssql");
+var pg = require("pg");
+const keys = require("../config/keys");
+
+// Conexão com Postgres
+pg.defaults.poolSize = 25;
+
+// Creates global pool connection with Postgres and MS SqlServer
+global.poolPg = new pg.Pool(keys.pg);
+global.poolMsql = new ms_sql.ConnectionPool(keys.msql, function(err) {
+ if (err) {
+ console.log("Não conectou \n" + err);
+ }
+});
\ No newline at end of file
diff --git a/services/passport.js b/services/passport.js
new file mode 100644
index 0000000..27e4182
--- /dev/null
+++ b/services/passport.js
@@ -0,0 +1,21 @@
+const passport = require("passport");
+const GoogleStrategy = require("passport-google-oauth20").Strategy;
+const util = require('util');
+const keys = require("../config/keys");
+
+passport.use(
+ new GoogleStrategy(
+ {
+ clientID: keys.googleClientID,
+ clientSecret: keys.googleClientSecret,
+ callbackURL: "/auth/google/callback"
+ },
+ (accessToken, refreshToken, profile, done) => { // error function
+ console.log("Ocorreu um erro");
+ console.log("Chave de acesso: " + accessToken);
+ console.log("Refresh token: " + refreshToken);
+ console.log("Profile: " + util.inspect(profile, false, null));
+ }
+ )
+ );
+
\ No newline at end of file
diff --git a/src/connectionsConfiguration.js b/src/connectionsConfiguration.js
deleted file mode 100644
index d0699e2..0000000
--- a/src/connectionsConfiguration.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var connection = {
- pg: {
- host: 'http://nexusbr.dyndns-ip.com', // server name or IP address;
- hostaddr: 'http://nexusbr.dyndns-ip.com',
- port: 5432,
- database: 'gis',
- user: 'postgres',
- password: 'nexus243',
- max: 10, // max number of clients in the pool
- idleTimeoutMillis: 30000 // how long a client is allowed to remain idle before being closed
- },
- msql: {
- user: 'sa',
- password: 'Nexus243',
- server: 'http://nexusbr.dyndns-ip.com',
- database: 'comercial',
- port: '1444',
- dialect: 'mssql'
- }
-}
-module.exports = connection;
\ No newline at end of file
diff --git a/views/layout.jade b/views/layout.jade
index 21e3a86..ee156d4 100644
--- a/views/layout.jade
+++ b/views/layout.jade
@@ -19,7 +19,6 @@ html
link(src="http://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous")
body
.container
-
script(src='//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js')
script(src='//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js')
block content
diff --git a/views/map.jade b/views/map.jade
index f85d6d2..777cde9 100644
--- a/views/map.jade
+++ b/views/map.jade
@@ -3,11 +3,9 @@ block content
br
.container
.row
- .col.col-lg-2
- | Codigo: #{codigo}
- .col.col-lg-3
- | Consumidor: #{consumidor}
.col.col-lg-3
+ | #{consumidor}
+ .col.col-lg-2
input.form-control(type='text', id="nome", placeholder='Digite o nome')
.col.col-lg-1
input.btn.btn-primary(type='button', value='Procura', onclick=' relocate_home()')
@@ -38,7 +36,7 @@ block content
"Google": L.tileLayer('http://www.google.cn/maps/vt?lyrs=s@189&gl=cn&x={x}&y={y}&z={z}', {
attribution: 'google'
})
- }, {'Ocorrências': drawnItems, 'Redes': wmsLayer}, { position: 'topright', collapsed: false }).addTo(map);
+ }, {'Ocorrências': drawnItems, 'Redes': wmsLayer}, { position: 'topright', collapsed: true }).addTo(map);
var marker = L.marker([#{lat},#{lng}]).addTo(map);
marker.bindPopup("#{codigo}
#{consumidor}").openPopup();
--
libgit2 0.21.2